ループ内に関数があり、エラーが発生した場合でもループを続行したいと考えています。私が試してみました:
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]]) のエラー:
非関数を適用しようとしています
私が間違っていることを知っていただければ幸いです。
@joranとは異なり、ヘルプページの詳細セクションのいずれにもこれが文書化されているのを見ることができませんでしたが、tryCatchのエラー引数は関数であると想定されています。ただし、4 番目の例から明らかです (また、エラー メッセージから適切な考えを持っていれば)。
「try」機能を使用してタスクを達成できます。
for (num in 1:20) {
try({
fnABC(num)
}, silent=T)
}
for (num in 1:20) {
tryCatch(fnABC(num),error = function(e) {error=0 } )
}