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
#define the gradient vector
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))))
attr(model.func,"gradient")=Z
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]]
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
#define the gradient vector
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))))
attr(model.func,"gradient")=Z
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]]
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 at 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 at 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 > > #define the gradient vector > > 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)))) > > attr(model.func,"gradient")=Z > > 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 at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html >
Apparently Analagous Threads
- Is it possible to coerce R to continue proceeding the next command in a loop after an error message ?
- how to solve the step halving factor problems in gnls and nls
- 'singular gradient matrix’ when using nls() and how to make the program skip nls( ) and run on
- question about nls
- nls diagnostics?