我需要做的是从数百个链接中读取数据,其中一些链接不包含任何数据,因此,这里的代码如下:
urls <-paste0("http://somelink.php?station=",station, "&start=", Year, "01-01&etc")
myData <- lapply(urls, read.table, header = TRUE, sep = '|')
弹出一个错误,说“输入中没有可用的行”,我尝试使用“尝试”,但是出现同样的错误,请帮助,谢谢。
我需要做的是从数百个链接中读取数据,其中一些链接不包含任何数据,因此,这里的代码如下:
urls <-paste0("http://somelink.php?station=",station, "&start=", Year, "01-01&etc")
myData <- lapply(urls, read.table, header = TRUE, sep = '|')
弹出一个错误,说“输入中没有可用的行”,我尝试使用“尝试”,但是出现同样的错误,请帮助,谢谢。
以下是两种可能的解决方案(未经测试,因为您的示例不可重复):
运用 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)
})
这有帮助吗?
dims <- sapply(myData, dim)[2,]
bad_Ones <- myData[dims==1]
good_Ones <- myData[dims>1]
如果 myData
仍然抓住车站页面上的东西,上面的代码应该分开 myData
列表分为两组。 good_Ones
将是您想要使用的列表。 (当然,假设上述内容是准确的)