R 使用Lappy处理错误--输出失败元素的索引

R 使用Lappy处理错误--输出失败元素的索引,r,error-handling,lapply,R,Error Handling,Lapply,当某个元素出现故障时,始终返回NA或NULL,即 myfun <- function(s) { tryCatch(doSomething(s), error = function(e) { return(NULL) } } myfun通过使用identity()处理错误来捕获并释放错误。 检查错误 vapply(res, is, logical(1), "error") 返回错误条件通常比返回“神奇”值更好,如NA或NULL,除非下游分析与返回的值无缝工作 作为更高级的解决方案,创

当某个元素出现故障时,始终返回
NA
NULL
,即

myfun <- function(s) {
  tryCatch(doSomething(s), error = function(e) { return(NULL) }
}

myfun通过使用
identity()处理错误来捕获并释放错误。

检查错误

vapply(res, is, logical(1), "error")
返回错误条件通常比返回“神奇”值更好,如
NA
NULL
,除非下游分析与返回的值无缝工作

作为更高级的解决方案,创建更复杂的条件或扩展错误类

my_condition = function(err)
    structure(list(message=conditionMessage(err),
                   original=err), class=c("my", "condition"))
把那个还给我

res <- lapply(list(1, "two", 3), function(i) {
    tryCatch({
        sqrt(i)
    }, error=my_condition)
})
res
res <- lapply(list(1, "two", 3), function(i) {
    tryCatch({
        sqrt(i)
    }, error=my_condition)
})