我在循环中有一个函数,如果出现错误,我希望循环继续。我试过了:
for (num in 1:20) {
tryCatch(fnABC(num),error=0)
}
但是循环因错误而停止,我收到一条消息:
tryCatchOne(expr, names, parentenv, handlers[[1L]]) 中的错误:
尝试应用非函数
我会很高兴知道我做错了什么。
我在循环中有一个函数,如果出现错误,我希望循环继续。我试过了:
for (num in 1:20) {
tryCatch(fnABC(num),error=0)
}
但是循环因错误而停止,我收到一条消息:
tryCatchOne(expr, names, parentenv, handlers[[1L]]) 中的错误:
尝试应用非函数
我会很高兴知道我做错了什么。
tryCatch 的错误参数应该是一个函数,尽管与@joran 不同,我无法在帮助页面的任何详细信息部分中看到这一点。但是,从第 4 个示例中可以明显看出(如果您从错误消息中处于正确的思维框架中。)
您可以使用“尝试”功能来完成您的任务:
for (num in 1:20) {
try({
fnABC(num)
}, silent=T)
}
for (num in 1:20) {
tryCatch(fnABC(num),error = function(e) {error=0 } )
}