On 09/02/15 06:46, Ravi Varadhan wrote:
Hi,

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?

What about trying some'at lahk:

fmla <- as.formula(paste(yname,"~ time + as.factor(gvhd)"))
mod2 <- with(...., lme(fmla, random = ....))

Also you would probably be better off using the data argument rather then using with(); this could have some impact on the environment in which the formula is evaluated.

Just stabbing in the dark here since you did not provide a reproducible example.

cheers,

Rolf Turner

--
Rolf Turner
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276
Home phone: +64-9-480-4619

______________________________________________
[email protected] 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