[R] bug in nls?

Petr PIKAL petr.pikal at precheza.cz
Fri Jun 27 11:24:46 CEST 2008


Thank you both.

Katharine approach seemed to me easier to implement so I used it 
successfully. However I still wonder why in linear model using lm I can 
use 

for (i in ....) lm( data[,i]~data[,1])

but in nls the same construction fails. I understand that it is sometimes 
difficult to set correct starting values especially if the values can by 
quite different and then the cycle fails. 

However it works in lm and probably in other regression models (I tested 
it in ltsreg from MASS)

Petr
petr.pikal at precheza.cz
724008364, 581252140, 581252257


r-help-bounces at r-project.org napsal dne 26.06.2008 14:16:35:

> Dear Petr,
> 
> I think it's a feature.  the formula interface also won't let you 
specify
> the slots of S4 objects in the model spec.
> 
> How about
> 
> coef(nls(y~a*x^b, data=list(x=DF[,1], y=DF[,2]), start=list(a=3, b=.7)))
> 
> ?
> 
> On Thu, 26 Jun 2008, Petr PIKAL wrote:
> 
> > Dear all
> >
> > Nobody responded to my previous post so far so I try with more 
offending
> > subject.
> >
> > I just encountered a strange problem with nls formula. I tried to use 
nls
> > in cycle but I was not successful. I traced the problem to some parse
> > command.
> >
> > Here is an example
> >
> > DF<-data.frame(x=1:10, y=3*(1:10)^.5+rnorm(10))
> >
> > coef(lm(log(DF[,2])~log(DF[,1])))
> >  (Intercept) log(DF[, 1])
> >    0.7437320    0.6831726
> > # this works
> >
> > coef(nls(y~a*x^b, data=DF, start=list(a=3, b=.7)))
> >         a         b
> > 2.6412881 0.5545907
> > # OK, this works too
> >
> > coef(nls(DF[,2]~a*DF[,1]^b, data=DF, start=list(a=3, b=.7)))
> > Error in parse(text = x) : unexpected end of input in "~ "
> > coef(nls(DF[,2]~a*DF[,1]^b, start=list(a=3, b=.7)))
> > Error in parse(text = x) : unexpected end of input in "~ "
> > # but this does not
> >
> >
> > Browse[1]>
> > debug: mf$formula <- as.formula(paste("~", paste(varNames[varIndex],
> >     collapse = "+")), env = environment(formula))
> > Browse[1]>
> > Error in parse(text = x) : unexpected end of input in "~ "
> > >
> >
> > Actually the problem is that with calling nls with DF[,n]~... varNames 
and
> > varIndex is not correctly specified.
> >
> > I am not sure if this behaviour is a bug or feature. If it is a 
feature,
> > please help me how to call variables from data frame
> > when using nls inside cycle
> >
> > for (i in ....) result[i,] <- coef(nls( ...., ))
> >
> > Thank you
> > Petr
> >
> > > sessionInfo()
> > R version 2.8.0 Under development (unstable) (2008-05-18 r45723)
> > i386-pc-mingw32
> >
> > locale:
> > LC_COLLATE=Czech_Czech Republic.1250;LC_CTYPE=Czech_Czech
> > Republic.1250;LC_MONETARY=Czech_Czech
> > Republic.1250;LC_NUMERIC=C;LC_TIME=Czech_Czech Republic.1250
> >
> > attached base packages:
> > [1] stats     grDevices datasets  utils     graphics  methods   base
> >
> > other attached packages:
> > [1] nlme_3.1-88    lattice_0.17-7 fun_0.1
> >
> > loaded via a namespace (and not attached):
> > [1] grid_2.8.0  tools_2.8.0
> >
> >
> > Petr Pikal
> > petr.pikal at precheza.cz
> > 724008364, 581252140, 581252257
> >
> > ______________________________________________
> > R-help at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
> >
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list