可能重复:
Exception handling in R
我使用glm.nb
函数来拟合NB模型,但有时程序会出错:
Error in while ((it <- it + 1) < limit && abs(del) > eps) { :
missing value where TRUE/FALSE needed
然后整个程序崩溃了。现在我编写另一个可以解决这种收敛问题的函数(这是由于极大的似然值;请参阅this post)。
我的问题是:当glm.nb
函数发生故障时,如何告诉R切换到我自己的函数?
我被告知要在glm.nb
的源代码中查找错误消息,然后修改该部分。但是,我没有明确地找到这样的代码,并想知道R中是否有更简单的方法可以跳出一个分解函数并通过某些if-else
语句切换到另一个函数?
答案 0 :(得分:0)
两个帖子回答了这个问题(感谢@xin guo指出了正确的方向):
catching an error and then branching logic
在我的实验中,当您在warning = function(w)
中使用error = function(e)
和tryCatch()
时,我注意到了差异。如果只有警告,则不会识别错误部分,反之亦然。确保从R获得正确的消息,并在tryCatch()
中使用相应的参数:)