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

时间:2012-11-28 19:51:16

标签: r url

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

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

弹出错误说&#34;输入中没有可用的行&#34;,我已尝试使用&#34;尝试&#34;,但是出现相同的错误,请帮助,谢谢。

2 个答案:

答案 0 :(得分:19)

以下是两种可能的解决方案(未经测试,因为您的示例不可重复):

使用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)
})

答案 1 :(得分:0)

这有帮助吗?

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

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