[R-sig-ME] Bug in anova.mer with models in a list (CRAN lme4 and lme4.0 only)
Henrik Singmann
henrik.singmann at psychologie.uni-freiburg.de
Wed Jun 26 08:04:08 CEST 2013
Hi all,
there seems to be a bug in the anova method for mer objects with two models when both models are inside a list:
require(lme4)
# from ?lmer
fm1 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
fm2 <- lmer(Reaction ~ Days + (1|Subject) + (0+Days|Subject), sleepstudy)
# both models inside a list do not work:
anova(list(fm1)[[1]], list(fm2)[[1]])
## Error in names(mods) <- sapply(as.list(mCall)[c(FALSE, TRUE, modp)], as.character) :
## 'names' attribute [6] must be the same length as the vector [2]
# no list or one list works:
anova(fm1, fm2)
anova(list(fm1)[[1]], fm2)
anova(fm1, list(fm2)[[1]])
This bug most likely resides in the sapply statement on lines 1029 and 1030 in lmer.R (CRAN tar.gz of lme4):
names(mods) <- sapply(as.list(mCall)[c(FALSE, TRUE, modp)],
as.character)
mods is only of length 2, but the sapply call evaluates to:
object
[1,] "[[" "[["
[2,] "list(fm1)" "list(fm2)"
[3,] "1" "1"
This problem occurs for both CRAN lme4 and r-forge lme4.0, but not lme4 devel from github.
I do not think this bug is critical and it is relatively easy to circumvent (i.e., simply assign one of the list models to a non-list object prior) but couldn't find it documented somewhere, so I thought it would be nice to report it.
Cheers,
Henrik
--
Dipl. Psych. Henrik Singmann
PhD Student
Albert-Ludwigs-Universität Freiburg, Germany
http://www.psychologie.uni-freiburg.de/Members/singmann
More information about the R-sig-mixed-models
mailing list