我使用包装函数通过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