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.

Reply via email to