Ravi Varadhan <ravi.varadhan <at> jhu.edu> writes: > I would like to run lme() on a number of response variables > in a dataframe in an automatic manner. Bu, when I > use eval(parse(text=yname)) to denote the LHS of the formula in lme(), > I get the following error message: > > > require(nlme) > > > mod2 <- with(subset(labdata2, Transplant_type!=0 & time >0), > lme(eval(parse(text=yname)) ~ time + > as.factor(gvhd), random = ~1|Patient, correlation = corAR1(), > method="ML", na.action=na.omit)) > Error in model.frame.default(formula = ~Patient + yname + time + gvhd, : > variable lengths differ (found for 'yname') > > The same usage works well in lme4::lmer without any problems. > > It seems that there is a problem in > how the formula object is evaluated in lme(). Is there an alternative way > to do this? > While I'm pleased that lmer is more robust, I would say that the safest/most robust way to do this would be:
ff <- reformulate("time","as.factor(gvhd)",response=yname) dd <- subset(labdata2, Transplant_type!=0 & time >0) lme(ff, random=~1|Patient, data=dd, ...) ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.