[R] Naming a random effect in lmer
spencer.graves at prodsyse.com
Fri May 22 20:17:41 CEST 2009
The first exaample on the "lmer" help page uses a formula
"Reaction ~ Days + (Days|Subject)". Here, "Subject" is the name of a
column in the data.frame "sleepstudy", with levels "308", "309", ... .
Does this answer your question? If no, please provide commented,
minimal, self-contained, reproducible code, as requested in the posting
guide "http://www.R-project.org/posting-guide.html". Your example is
not "self-contained, reproducible".
Hope this helps.
Leigh Ann Starcevich wrote:
> Dear guRus:
> I am using lmer for a mixed model that includes a random intercept for a
> set of effects that have the same distribution, Normal(0, sig2b). This set
> of effects is of variable size, so I am using an as.formula statement to
> create the formula for lmer. For example, if the set of random effects has
> dimension 8, then the lmer call is:
> Zs<- paste("Z",1:mb,sep="")
> Trendformula <-as.formula(paste("LogY ~ WYear + (1+WYear|Site) + (1|",
> paste(paste(Zs,collapse="+"), ")")))
> fit2.4a<-lmer(Trendformula, data = testsamp)
> which, for mb=8, expands to:
> fit1<-lmer(LogY ~ WYear + (1 | Site) + (1 | Year) + (1 | Z1+ Z2 + Z3 + Z4 +
> Z5 + Z6 + Z7 + Z8), data = testsamp)
> I have no problems with this. However, if the set of random effects has a
> dimension of 30, then the lmer call is:
> fit2<-lmer(LogY ~ WYear + (1 | Site) + (1 | Year) + (1 | Z1+Z2 + Z3 + Z4 +
> Z5 + Z6 + Z7 + Z8 + Z9 + Z10 + Z11 + Z12 + Z13 + Z14 + Z15 + Z16 + Z17 +
> Z18 + Z19 + Z20 + Z21 + Z22 + Z23 + Z24 + Z25 + Z26 + Z27 + Z28 + Z29+
> Z30), data = testsamp)
> In this case, I get an error because the name "Z1+Z2 + Z3 + Z4 + Z5 + Z6 +
> Z7 + Z8 + Z9 + Z10 + Z11 + Z12 + Z13 + Z14 + Z15 + Z16 + Z17 + Z18 + Z19 +
> Z20 + Z21 + Z22 + Z23 + Z24 + Z25 + Z26 + Z27 + Z28 + Z29+ Z30" is too long
> to print in the output. Is there any way to name the random effect in
> lmer so that the shorter (and more descriptive) name may be used and the
> error avoided? Or is there a way to combine these into a single variable
> prior to the lmer function call? In SAS, I am able to parameterize these
> as a Toeplitz structure with bandwidth 1.
> Thanks for any help.
> Leigh Ann Starcevich
> Doctoral student
> Oregon State University
> Corvallis, Oregon
> [[alternative HTML version deleted]]
> R-help at r-project.org mailing list
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help