2012-11-02 22 views
1

Possible Duplicate:
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語句切換到另一個函數?

+1

我建議這個鏈接:http://stackoverflow.com/questions/2622777/exception-handling-in-r –

+0

@xin郭:謝謝!我也發現這個鏈接非常有用:http://stackoverflow.com/questions/3440373/functions-and-try-in-r?rq=1 – alittleboy

回答

0

兩個職位回答這個問題(感謝你@xin郭您指出正確的方向):

catching an error and then branching logic

Functions and try() in R

在我的實驗中,我注意到的差異,當您使用warning = function(w)error = function(e) in tryCatch()。如果只有警告,那麼錯誤部分將不被識別,反之亦然。確保你得到來自R正確的消息,並使用相應的參數在tryCatch() :)

相關問題