我正在使用一个包装函数,将几百个数据集通过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