Full_Name: Jerome Asselin
Version: 1.6.1
OS: linux redhat 7.2
Submission from: (NULL) (142.103.173.179)
print.lme() fails when the parameters "model", "fixed" and "random"
are input as objects in nlme(). To show how this occurs, below is a
slightly modified example from the nlme help page.
library(nlme)
data(Loblolly)
fm1 <- nlme(height ~ SSasymp(age, Asym, R0, lrc),
data = Loblolly,
fixed = Asym + R0 + lrc ~ 1,
random = Asym ~ 1,
start = c(Asym = 103, R0 = -8.5, lrc = -3.3))
fm1 # THIS WORKS...
model <- height ~ SSasymp(age, Asym, R0, lrc)
fixed <- Asym + R0 + lrc ~ 1
random <- Asym ~ 1
start <- c(Asym = 103, R0 = -8.5, lrc = -3.3)
fm2 <- nlme(model,
data = Loblolly,
fixed = fixed,
random = random,
start = start)
fm2 # ERROR
#Nonlinear mixed-effects model fit by maximum likelihood
#Error in as.vector(x, mode) : cannot coerce to vector
all(unlist(fm1$coefficients)==unlist(fm2$coefficients)) # TRUE
nlme() and parameters "model", "fixed" and "random" (PR#2363)
2 messages · Jerome Asselin, Douglas Bates
jerome@hivnet.ubc.ca writes:
Full_Name: Jerome Asselin
Version: 1.6.1
OS: linux redhat 7.2
Submission from: (NULL) (142.103.173.179)
print.lme() fails when the parameters "model", "fixed" and "random"
are input as objects in nlme(). To show how this occurs, below is a
slightly modified example from the nlme help page.
library(nlme)
data(Loblolly)
fm1 <- nlme(height ~ SSasymp(age, Asym, R0, lrc),
data = Loblolly,
fixed = Asym + R0 + lrc ~ 1,
random = Asym ~ 1,
start = c(Asym = 103, R0 = -8.5, lrc = -3.3))
fm1 # THIS WORKS...
model <- height ~ SSasymp(age, Asym, R0, lrc)
fixed <- Asym + R0 + lrc ~ 1
random <- Asym ~ 1
start <- c(Asym = 103, R0 = -8.5, lrc = -3.3)
fm2 <- nlme(model,
data = Loblolly,
fixed = fixed,
random = random,
start = start)
fm2 # ERROR
#Nonlinear mixed-effects model fit by maximum likelihood
#Error in as.vector(x, mode) : cannot coerce to vector
all(unlist(fm1$coefficients)==unlist(fm2$coefficients)) # TRUE
Thanks for the report. The construction deparse(as.vector(x)) where x is a formula is needed in S-PLUS but can cause an error in R. We should, and will, revise the R package for nlme to replace any instances of deparse(as.vector(x)) by deparse(x).