0

我在循环中有一个函数,如果出现错误,我希望循环继续。我试过了:

for (num in 1:20) {
    tryCatch(fnABC(num),error=0)
}

但是循环因错误而停止,我收到一条消息:

tryCatchOne(expr, names, parentenv, handlers[[1L]]) 中的错误:
尝试应用非函数

我会很高兴知道我做错了什么。

4

3 回答 3

2

tryCatch 的错误参数应该是一个函数,尽管与@joran 不同,我无法在帮助页面的任何详细信息部分中看到这一点。但是,从第 4 个示例中可以明显看出(如果您从错误消息中处于正确的思维框架中。)

于 2013-03-15T18:51:22.983 回答
1

您可以使用“尝试”功能来完成您的任务:

for (num in 1:20) {
    try({
        fnABC(num)
    }, silent=T)
}
于 2013-03-15T19:01:46.160 回答
0
for (num in 1:20) {
tryCatch(fnABC(num),error = function(e) {error=0 } )
}
于 2013-05-31T12:07:56.730 回答