[R] how to use try()
Sundar Dorai-Raj
sundar.dorai-raj at pdf.com
Mon Feb 9 23:05:17 CET 2004
r.ghezzo wrote:
> Hello, I have a program with this section:
> ..
> for(i in 1:20){
> lo <- nls(y~y0+a/(1+(x/x0)^b),start=list(y0=0.1,a=a0,x0=x00,b=-8.1))
> beta[i] <- lo$m$getPars()[4]
> }
> ..
> If the fit works this is OK but if the fit fails, the whole program
> fails so:
> ..
> for(i in 1:20){
> try(lo <- nls(y~y0+a/(1+(x/x0)^b),start=list(y0=0.1,a=a0,x0=x00,b=-8.1)))
> beta[i] <- lo$m$getPars()[4]
> }
> ..
> but the try catches the error in nls and beta[i] gets assigned beta[i-1]
> from the previous loop. This is bad but no so bad as it can be checked,
> Now in some cases the error is in i=1 and the program stops!!
> is there a way to set lo$m$getPars() to zero before the call?
> I tried to understand the use of tryCatch() but frankly it is above me.
> Sorry
> Thanks for any help
> Heberto Ghezzo
> Meakins-Christie Labs
>
How about:
beta[i] <- if(data.class(lo) == "Error") 0 else lo$m$getPars()[4]
-sundar
More information about the R-help
mailing list