我有以下 URL 对象,需要在下载和处理 CSV 文件之前检查它们是否可以访问。我无法直接使用这些 URL,因为它会根据之前的步骤不断变化。
我的要求是,如果可以访问,请阅读链接,否则会抛出错误并转到下一个链接。
url1= "https://s3.mydata.csv"
url2="https://s4.mydata.csv"
url3="https://s5.mydata.csv"
(Below code will be repeated for the other 2 URLs as well)
readUrl <- function(url1) {
out <- tryCatch(
{
readLines(con=url, warn=FALSE)
error=function(cond) {
message(cond)
return(NA)
},
finally={
dataread=data.table::fread(url1, sep = ",", header= TRUE,verbose = T,
fill =TRUE,skip = 2 )
}
)
return(out)
}
y <- lapply(urls, readUrl)
答案 0 :(得分:0)
为什么不直接从包 url.exists
中调用函数 RCurl
。
来自文档:
<块引用>这个函数类似于 file.exists 并确定一个 对特定 URL 的请求响应没有错误。
函数文档LINK
使用此函数的布尔结果,您无需 Try Catch 即可轻松调整起始代码。