bug in nls?
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.