[R] Keep factor order in lmer
Pascal A. Niklaus
pascal.niklaus at ieu.uzh.ch
Wed Feb 3 15:34:04 CET 2016
I would like to keep a specific order of fixed effects in a model passed
to lmer. In particular, I would like to prevent that interactions are
automatically moved after all main effects.
In aov and lme, this is possible with terms(..., keep.order=TRUE).
Unfortunately, I have not found a way to achieve this behaviour in lmer.
Here is an example that illustrates the problem:
d <- data.frame(
R=factor(rep(1:4,each=8)),
A=factor(rep(1:2,each=4)),
B=factor(rep(1:2,each=2)),
C=factor(1:2))
d$y <- rnorm(nrow(d))
## example using aov, with intended output
summary(aov(terms(y~A*B+C,keep.order = TRUE),data=d))
Df Sum Sq Mean Sq F value Pr(>F)
A 1 0.831 0.8308 0.832 0.370
B 1 0.356 0.3557 0.356 0.556
A:B 1 0.103 0.1035 0.104 0.750
C 1 0.992 0.9919 0.993 0.328
Residuals 27 26.970 0.9989
## works also in lme
anova(lme(terms(y~A*B+C,keep.order=TRUE),random=~1|R,data=d))
## but how do I achieve this in lmer?
anova(lmer(y~A*B+C+(1|R),data=d))
Of course, I could recode the interactions into new single factors, but
that seems rather cumbersome.
Thanks for your help
Pascal
More information about the R-help
mailing list