Używam kilkuset zestawów danych przez glm.nb
przy użyciu funkcji otoki. Nic nadzwyczajnego, po prostu przekazuję każdy element listy przez llply
, a następnie dopasowuję za pomocą glm.nb
, zapisuję współczynniki do data.frame
i zwracam je z powrotem.Jak ignorować błędy i kontynuować przetwarzanie elementów listy?
Nic dziwnego, że glm.nb nie może zbiegać się dla niektórych zestawów danych. Zamiast tego, aby funkcja kasowała błąd i przestała działać, wolałbym, aby był kontynuowany w pozostałych zestawach danych i zwracał wyniki tam, gdzie to możliwe.
Moja pierwsza próba była to:
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]))
}
}
Każdy myśli na sposób bardziej ogólny do ignorowania błędów, dzięki czemu można dokonać tej pracy?
Nie wiem zbyt wiele na temat 'plyr', ale czy' failwith() 'jak opisano w pomocy przewodnika wprowadzającego? http://had.co.nz/plyr/plyr-intro-090510.pdf – Chase
Prawdopodobnie powiązane: http://stackoverflow.com/questions/2963729/r-catching-errors-in-nls – nico