J'utilise plusieurs centaines de jeux de données via glm.nb
à l'aide d'une fonction wrapper. Rien d'extraordinaire, je viens de passer sur chaque élément de la liste via llply
, puis ajuster en utilisant glm.nb
, écrire les coefficients à un data.frame
et le renvoyer.Comment ignorer les erreurs et poursuivre le traitement des éléments de la liste?
Il n'est pas surprenant que glm.nb ne converge pas pour certains jeux de données. Plutôt que d'avoir la fonction cracher une erreur et arrêter, je préfère qu'il continue à travers le reste des jeux de données et de renvoyer des résultats lorsque cela est possible.
Ma première tentative était la suivante:
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]))
}
}
Toute réflexion sur une façon plus générique d'ignorer les erreurs pour que je puisse faire ce travail?
Je ne sais pas grand-chose sur 'plyr', mais est-ce que' failwith() 'comme indiqué dans l'aide intro guide? http://had.co.nz/plyr/plyr-intro-090510.pdf – Chase
Peut-être: http://stackoverflow.com/questions/2963729/r-catching-errors-in-nls – nico