[R] bug in nls?

Petr PIKAL petr.pikal at precheza.cz
Thu Jun 26 13:57:39 CEST 2008

Dear all

Nobody responded to my previous post so far so I try with more offending 

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 

Here is an example

DF<-data.frame(x=1:10, y=3*(1:10)^.5+rnorm(10))

 (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

debug: mf$formula <- as.formula(paste("~", paste(varNames[varIndex], 
    collapse = "+")), env = environment(formula))
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

> sessionInfo()
R version 2.8.0 Under development (unstable) (2008-05-18 r45723) 

LC_COLLATE=Czech_Czech Republic.1250;LC_CTYPE=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

More information about the R-help mailing list