1

可能重复:
R中的异常处理

我使用glm.nb函数来拟合 NB 模型,但有时程序会出错:

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

然后整个程序就崩溃了。现在我编写了另一个可以解决这种收敛问题的函数(这是由于极大的似然值;参见这篇文章)。

我的问题是:当函数发生故障时,我如何告诉 R 切换到我自己的函数glm.nb

我被告知在源代码中查找错误消息,glm.nb然后修改该部分。但是,我没有明确找到这样的代码,想知道 R 中是否有更简单的方法可以跳出分解函数并通过某些if-else语句切换到另一个函数?

4

1 回答 1

0

两个帖子回答了这个问题(感谢@xin guo 指出正确的方向):

捕获错误然后分支逻辑

R中的函数和try()

在我的实验中,我注意到您使用warning = function(w)error = function(e)in时的差异tryCatch()。如果只有警告,则错误部分将无法识别,反之亦然。确保您从 R 获得正确的消息,并在tryCatch():)中使用相应的参数

于 2012-11-02T06:46:31.607 回答