R を使用して分析している大量のデータの一部として、一連のデータセットに対してパッケージ Robustbase から lmrob を繰り返し呼び出します。
for (i in uniq.w) {
y <- x[x$w==i,4]
t<-seq(length(y))
result <- try(lmrob(y~t,na.action=na.exclude))
if(class(result) == "try-error") next;
output[[i]] <- result
}
ただし、一部のデータ セットはエラーを返します。上記のエラー処理では抑制されません。
だから私は次のようなことを試します
for (i in uniq.w) {
y <- x[x$w==i,4]
t<-seq(length(y))
result <- suppressWarnings(tryCatch(lmrob(y~t,na.action=na.exclude),error=function(e) e))
if(inherits(result,"error")) next
output[[i]] <- result
}
これにより、エラーと警告が抑制されます。ただし、それらはまだシステムのどこかに存在しているようです。後で lmrob を呼び出すと、機能しません。代わりに、前の呼び出しと同じ結果を返します。(もちろん、私が見落としている他の問題がある可能性は十分にあります)。
エラーが後続のバッチに影響を与えることなく、R 関数を繰り返し呼び出すことができるように、この状況にアプローチする正しい方法は何ですか。
後で結果をチェックして、解が収束したことを確認し、収束しなかった結果を破棄します。ご協力ありがとうございます。