【问题标题】:Error Handling with Lapply使用 Lapply 处理错误
【发布时间】:2015-02-27 13:00:03
【问题描述】:

我正在尝试在 R 中运行以下代码:

player1_html=lapply(player1,readLines)

其中,player1 是一个由 15 个字符向量组成的字符数组,其中包含要读取的不同页面的 url。我面临的问题是某些页面出现 404 错误,因此程序中断并出现以下错误:

Error in file(con, "r") : cannot open the connection

我想问是否有一种方法可以通过忽略给出错误的链接来处理这个问题。另外,在使用 readLines(not in lapply) 时处理此类错误的正常方法是什么?

【问题讨论】:

标签: r web-scraping readline lapply


【解决方案1】:

同样,装饰器是一种可能的好方法:

strongify <- function(f)
{
    function(...){
        tryCatch({
            f(...)
        },
    error=function(e) return(NA)
    })
}

strongReadLines = strongify(readLines)

player1_html = lapply(player1,strongReadLines)

发生错误时给你NA。显然你装饰的函数不应该返回NA ...或者拉皮条你的装饰器!

【讨论】:

  • 是的,我希望从阵列中删除该链接。这怎么可能?
  • 把上面的代码...简单地用 player1[!is.na(player1_html)]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多