如何修复R中“输入中没有可用行”的错误?

问题描述 投票:0回答:3

我需要做的是从数百个链接中读取数据,其中有些链接不包含数据,因此,如这里的代码:

urls <-paste0("http://somelink.php?station=",station, "&start=", Year, "01-01&etc")
myData <- lapply(urls, read.table, header = TRUE, sep = '|')

弹出错误说“输入中没有可用行”,我尝试使用“尝试”,但出现同样的错误,请帮忙,谢谢。

r url
3个回答
27
投票

这里有 2 种可能的解决方案(未经测试,因为您的示例不可重现):

使用

try

myData <- lapply(urls, function(x) {
  tmp <- try(read.table(x, header = TRUE, sep = '|'))
  if (!inherits(tmp, 'try-error')) tmp
})

使用

tryCatch

myData <- lapply(urls, function(x) {
  tryCatch(read.table(x, header = TRUE, sep = '|'), error=function(e) NULL)
})

0
投票

这有帮助吗?

  dims <- sapply(myData, dim)[2,]
  bad_Ones <- myData[dims==1]
  good_Ones <- myData[dims>1]

如果

myData
仍然从车站页面获取某些内容,则上述代码应将
myData
列表分成两个单独的组。
good_Ones
将是您想要使用的列表。 (当然,假设上述内容是准确的)


0
投票

这实际上是对不同问题的答案,但同样的错误消息将我带到这里。对我来说,我的 Dropbox 已经离线存储了文件夹,R 无法加载它们。所以我将文件夹存储更改为本地。

© www.soinside.com 2019 - 2024. All rights reserved.