This is a continuing issue with the one on the list a long time ago (I
couldn't find a solution to it from the web):
--------------------------------------------------------------------------
Using a formula converted with as.formula with lme leads
to an error message. Same works ok with lm, and with
lme and a fixed formula.
# demonstrates problems with lme and as.formula
demo<-data.frame(x=1:20,y=(1:20)+rnorm(20),subj=as.factor(rep(1:2,10)))
demo.lm1<-lme(y~x,data=demo,random=~1|subj)
print(summary(demo.lm1))
newframe<-data.frame(x=1:5,subj=rep(1,5))
predict(demo.lm1,newframe,level=0)
fma<-as.formula("y~x")
demo.lm<-lm(fma,data=demo) # ok
predict(demo.lm,newframe,level=0) # ok
demo.lm2<-lme(fma,data=demo,random=~1|subj) # looks ok, but isn't
print(summary(demo.lm2))
#Fixed effects: Error in as.vector(x, "list") : cannot coerce to vector
#predict(demo.lm2,newframe,level=0) # does not work
Thanks for the detailed report. I can reproduce the problem. It
appears that there needs to be an eval early in the lme function so it
stores the formula for the fixed effects, not the name of the formula.
------------------------------------------------------------------------
Now I follow the suggestion and use :
demo.lm2<-lme(eval(fma),data=demo,random=~1|subj)
#works ok, even with summary(demo.lm2)
#predict(demo.lm2,newframe,level=0)
#Error in eval() : Argument "expr" is missing, with no default
How can I fix this problem and get the predict() function to work?
Thank you!
********************************************************************
Song Liu
School of Statistics
313 FordH
224 Church St. SE
Minneapolis,MN 55455