如何在R中使用try catch检查url对象是否可访问

时间:2021-02-17 11:11:00

标签: r try-catch fread

我有以下 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)

1 个答案:

答案 0 :(得分:0)

为什么不直接从包 url.exists 中调用函数 RCurl

来自文档:

<块引用>

这个函数类似于 file.exists 并确定一个 对特定 URL 的请求响应没有错误。

函数文档LINK

使用此函数的布尔结果,您无需 Try Catch 即可轻松调整起始代码。

相关问题