我使用包裝函數通過glm.nb
運行數百個數據集。沒有什麼奇特的,我只是通過llply
傳遞每個列表項,然後使用glm.nb
進行擬合,將係數寫入data.frame
並將其返回。如何忽略錯誤並繼續處理列表項目?
毫不奇怪,glm.nb未能收斂某些數據集。而不是讓函數咳出一個錯誤並停止,我寧願它繼續通過其餘的數據集並在可能的情況下返回結果。
我第一次嘗試是這樣的:
res.model <- function(x)
{
res <- try(invisible(glm.nb(x~y, data=x)))
if(!("try-error" %in% class(res)))
{
return (data.frame(site=unique(x$site_name),species=unique(x$species),coef=res$coefficients[2]))
}
}
任何想法上更通用的辦法忽略錯誤,所以我可以使這項工作?
我對「plyr」不太瞭解,但是在介紹指南的幫助中列出了'failwith()'嗎? http://had.co.nz/plyr/plyr-intro-090510.pdf – Chase 2010-11-09 19:48:11
可能相關:http://stackoverflow.com/questions/2963729/r-catching-errors-in-nls – nico 2010-11-09 19:58:30