错误循环的继续
我有一个循环内的函数,我希望循环在出现错误时继续。 我曾尝试:错误循环的继续
for (num in 1:20) {
tryCatch(fnABC(num),error=0)
}
但循环停止的错误,我得到一个消息:
错误tryCatchOne(表达式,名称,parentenv,处理程序[1L]):
尝试应用非功能
我会很高兴知道我做错了什么。
您可以使用“试试看”的功能来完成你的任务:
for (num in 1:20) {
try({
fnABC(num)
}, silent=T)
}
非常感谢您的帮助。 – 2013-03-17 16:00:12
TryCatch的错误参数应该是一个函数,尽管与@joran不同,我无法在帮助页面的任何详细信息部分看到这一点。很明显,但是,从第4个例子(如果你在心灵的从错误信息的正确框架。)
我指的是这样的:“如果找到一个处理程序,那么...处理程序将以条件作为其参数被调用,并且处理程序返回的结果将作为tryCatch调用的值返回。”但也许这有点不透明。 – joran 2013-03-15 18:55:03
这是给我的。我怀疑我的抽象程度介于你和@adam.888之间。 – 2013-03-15 18:57:52
非常感谢您指出这一点。 – 2013-03-17 16:01:32
for (num in 1:20) {
tryCatch(fnABC(num),error = function(e) {error=0 })
}
我可以问一下,根据'tryCatch'说明的文档以及例子,你的理由是为了设置'error = 0'吗? – joran 2013-03-15 18:23:01
感谢您的指导。从文档我尝试tryCatch.W.E(fnABC(num)),这似乎是工作。 – 2013-03-15 18:58:39