# Re: [R] problems with nls function

From: Gabor Grothendieck <ggrothendieck_at_gmail.com>
Date: Fri 15 Jul 2005 - 13:57:04 EST

The start list should only contain parameters, not x. Also your function appears to have multiple errors including reference to temp (presumably intended as tmp?) and b(x-m) which presumably should be b*(x-m).

On 7/14/05, Yimeng Lu <yl2058@columbia.edu> wrote:
> Sorry that I specified the x as
> x=c(0, 0.4, 0.7, 1, 1.4, 1.6, 1.8, 2:10)
>
> The error message is the same.
>
> Thanks.
>
> Hanna
>
> ----- Original Message -----
> From: Yimeng Lu
> To: r-help@stat.math.ethz.ch
> Sent: Thursday, July 14, 2005 11:19 PM
> Subject: problems with nls function
>
>
> Hello,
>
> I was trying to fit a generalized logistic curve and my code for testing
> if the function "nls" is working is like this
> #######
> #define the generalized logistic curve function
> glogit=function(a, b, c, m, t, x)
>
> {
>
> tmp = 1/(1 + t * exp(-b * (x - m)))^(1/t)
>
> model.func = a + tmp * c
>
>
> Z = cbind(1, c*(x-m)*tmp^(t+1)*exp(-b*(x-m)), tmp, -c*b*exp(-b*(x-m)) *temp^(t+1), -c*tmp*(1/t)* (log(tmp) + tmp^(-t) * exp(-b(x-m))))
>
>
> model.func
>
> }
>
>
>
> a= 0
>
> b=3
>
> c=6
>
> m=2
>
> t=0.75
>
> x=c(1:10)
>
> y=a + c/(1 + t * exp(-b * (x - m)))^(1/t) + rnorm(16, sd=0.01)
>
> plot(data.frame(x=x, y=y), type = "p", col = "red")
>
> nls(y ~ glogit(a, b, c, m, t, x), data=data.frame(y=y,x=x), start=list(a=1, b=2, c=3, m=1, t=0, x), trace=T)
>
> #####End.
>
> When I ran this code, I got the error "Error in assign(i, temp, envir = env) : attempt to use zero-length variable name". What does this error mean? How should I fix it?
>
>
>
> Many thanks.
>
> Hanna Lu
>
> Dept. of Biostatistics
>
> Columbia University
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help