1

重複の可能性:
R での例外処理

関数を使用glm.nbして NB モデルに適合させますが、プログラムでエラーが発生することがあります。

Error in while ((it <- it + 1) < limit && abs(del) > eps) { : missing value where TRUE/FALSE needed

その後、プログラム全体が崩壊します。ここで、このような収束の問題に対処できる別の関数を作成します (これは、尤度値が非常に大きいためです。この投稿を参照してください)。

glm.nb私の質問は次のとおりです。関数が故障したときに自分の関数に切り替えるように R に指示するにはどうすればよいですか?

のソースコードでエラーメッセージを探して、glm.nbその部分を修正するように言われました。しかし、私はそのようなコードを明示的に見つけられませんでした.Rで分解関数から飛び出して、いくつかのif-elseステートメントで別の関数に切り替える簡単な方法があるのだろうか?

4

1 に答える 1

0

2 つの投稿でこの質問に回答します (正しい方向を指摘してくれた @xin guo に感謝します)。

エラーをキャッチしてロジックを分岐する

R の関数と try()

私の実験では、 と を使用warning = function(w)した場合の違いに気付きerror = function(e)ましたtryCatch()。警告だけだとエラー部分が認識されず、逆もまた然り。R から正しいメッセージを取得していることを確認し、対応する引数をtryCatch():)で使用してください。

于 2012-11-02T06:46:31.607 に答える