tests/test_contrast_utils.R

# test_contrast_utils.R

library(lmerTest)

##########
# Test that a message is printed if some cells have zero data:
# Missing a single cell:
data("cake", package="lme4")
cake4 <- cake
cake4$temperature <- factor(cake4$temperature, ordered=FALSE)
cake4 <- droplevels(subset(cake4, !(recipe == "A" & temperature == "175") ))
with(cake4, table(recipe, temperature))

fm1 <- lmer(angle ~ recipe * temperature + (1|recipe:replicate), cake4)
an <- anova(fm1)
txt <- capture.output(an <- anova(fm1), type = "message")
stopifnot(length(grep("Missing cells for:", txt)) > 0,
          length(grep("Interpret type III hypotheses with care.", txt)) > 0)

##########
# Test that a message is printed if some cells have zero data:
# Missing diagonal:
cake4 <- cake
cake4$temperature <- factor(cake4$temperature, ordered=FALSE)
cake4 <- droplevels(subset(cake4, temperature %in% levels(cake4$temperature)[1:3]))
cake4 <- droplevels(subset(cake4, !((recipe == "A" & temperature == "175") |
                                      (recipe == "B" & temperature == "185") |
                                      (recipe == "C" & temperature == "195") )))
cake4$temp0 <- cake4$temp - mean(cake4$temp)
with(cake4, table(recipe, temperature))

fm1 <- lmer(angle ~ recipe * temperature + (1|recipe:replicate), cake4)
an <- anova(fm1)
txt <- capture.output(an <- anova(fm1), type = "message")
stopifnot(length(grep("Missing cells for:", txt)) > 0,
          length(grep("Interpret type III hypotheses with care.", txt)) > 0)

##########
# Test that a message is NOT printed with centered covariates:
fm1 <- lmer(angle ~ recipe * temp0 + (1|recipe:replicate), cake4)
an <- anova(fm1)
txt <- capture.output(an <- anova(fm1), type = "message")
stopifnot(length(grep("Missing cells for:", txt)) == 0,
          length(grep("Interpret type III hypotheses with care.", txt)) == 0)
# Note: in many cases a message would not be printed anyway because the
# columns sums in the rdX design matrix would not be exactly zero but just a
# small number very close to zero.

Try the lmerTest package in your browser

Any scripts or data that you put into this service are public.

lmerTest documentation built on Oct. 23, 2020, 6:16 p.m.