Nothing
context("ANOVAs: check that afex_aov return value works")
test_that("split-plot produces an afex_aov object without error", {
data(obk.long, package = "afex")
split_plot1 <- aov_car(value ~ treatment * gender + Error(id/(phase*hour)),
data = obk.long, observed = "gender",
return = "afex_aov")
split_plot2 <- aov_4(value ~ treatment * gender + (phase*hour|id),
data = obk.long, observed = "gender",
return = "afex_aov")
split_plot3 <- aov_ez("id", "value", obk.long,
between = c("treatment", "gender"),
within = c("phase", "hour"), observed = "gender",
return = "afex_aov")
expect_that(split_plot1, is_equivalent_to(split_plot2))
expect_that(split_plot1, is_equivalent_to(split_plot3))
expect_that(split_plot1, is_a("afex_aov"))
## is same with numeric factor:
obk.long$hour <- as.numeric(as.character(obk.long$hour))
split_plot4 <- aov_car(value ~ treatment * gender + Error(id/phase*hour),
data = obk.long,observed = c("gender"),
return = "afex_aov")
expect_that(split_plot1, is_equivalent_to(split_plot4))
})
test_that("purely-between produces afex_aov objects without error", {
data(obk.long, package = "afex")
out1 <- aov_car(value ~ treatment * gender + Error(id), data = obk.long,
observed = "gender", return = "afex_aov",
fun_aggregate = mean)
out2 <- aov_4(value ~ treatment * gender + (1|id), data = obk.long,
observed = "gender", return = "afex_aov", fun_aggregate = mean)
out3 <- aov_ez("id", "value", obk.long,
between = c("treatment", "gender"), observed = "gender",
return = "afex_aov", fun_aggregate = mean)
expect_that(out1, is_equivalent_to(out2))
expect_that(out1, is_equivalent_to(out3))
expect_that(out1, is_a("afex_aov"))
})
test_that("purely-within produces afex_aov objects without error", {
data(obk.long, package = "afex")
out1 <- aov_car(value ~ Error(id/(phase*hour)), data = obk.long,
return = "afex_aov")
out2 <- aov_4(value ~ 1 + (phase*hour|id), data = obk.long,
return = "afex_aov")
out3 <- aov_ez("id", "value", obk.long, within = c("phase", "hour"),
return = "afex_aov")
expect_that(out1, is_equivalent_to(out2))
expect_that(out1, is_equivalent_to(out3))
expect_that(out1, is_a("afex_aov"))
})
test_that("within plus covariate produces afex_aov objects without error", {
data(obk.long, package = "afex")
out1 <- aov_car(value ~ gender + Error(id/(phase*hour)), data = obk.long,
return = "afex_aov")
out2 <- aov_4(value ~ gender + (phase*hour|id), data = obk.long,
return = "afex_aov")
out3 <- aov_ez("id", "value", obk.long, within = c("phase", "hour"),
covariate = "gender", return = "afex_aov")
expect_that(out1, is_equivalent_to(out2))
expect_that(out1, is_equivalent_to(out3))
expect_that(out1, is_a("afex_aov"))
})
test_that("afex_aov object contains the right things", {
data(obk.long, package = "afex")
out1 <- aov_car(value ~ treatment * gender + Error(id/(phase*hour)),
data = obk.long, observed = "gender", return = "afex_aov",
include_aov = TRUE)
expect_that(out1[["anova_table"]], is_a(c("anova", "data.frame")))
expect_that(out1[["aov"]], is_a(c("aovlist", "listof")))
expect_that(out1[["Anova"]], is_a(c("Anova.mlm")))
expect_that(out1[["lm"]], is_a(c("mlm", "lm")))
expect_that(out1[["data"]], is_a(c("list")))
expect_that(attr(out1, "dv"), is_a(c("character")))
})
test_that("afex_aov objects works without aov object", {
data(obk.long, package = "afex")
aop <- afex_options()
afex_options(emmeans_model = "univariate")
afex_options(include_aov = TRUE)
a1 <- aov_car(value ~ treatment * gender + Error(id/(phase*hour)),
data = obk.long, observed = "gender", include_aov = FALSE)
a2 <- aov_4(value ~ treatment * gender + (phase*hour|id),
data = obk.long, observed = "gender", include_aov = FALSE)
a3 <- aov_ez("id", "value", obk.long, between = c("treatment", "gender"),
within = c("phase", "hour"), observed = "gender",
include_aov = FALSE)
expect_equal(a1, a2)
expect_equal(a1, a3)
expect_null(a1$aov)
skip_if_not_installed("emmeans")
expect_message(em1 <- emmeans::emmeans(a1, "treatment"), "multivariate")
expect_message(em2 <- emmeans::emmeans(a1, c("phase", "hour")), "multivariate")
expect_identical(as.data.frame(summary(em1))$df[1],
as.data.frame(summary(em2))$df[2])
ad <- aov_car(value ~ treatment * gender + Error(id/(phase*hour)),
data = obk.long, observed = "gender")
afex_options(include_aov = FALSE)
an <- aov_car(value ~ treatment * gender + Error(id/(phase*hour)),
data = obk.long, observed = "gender")
expect_null(an$aov)
expect_is(ad$aov, "aovlist")
em3 <- emmeans::emmeans(ad, c("phase", "hour"))
expect_message(em4 <- emmeans::emmeans(a1, c("phase", "hour")), "multivariate")
expect_false(any(as.data.frame(summary(em3))$df == as.data.frame(summary(em4))$df))
afex_options(aop) # reset options
})
test_that("better error message in case of all data having NAs", {
data("stroop")
# stroop_e1 <- stroop %>%
# filter(!is.na(acc)) %>%
# filter(study == "1") %>%
# droplevels()
stroop_e1_na <- stroop[ stroop$study == "1", ]
suppressWarnings(expect_error(aov_ez(
id = "pno",
dv = "acc",
data = stroop_e1_na,
within = c("congruency", "condition")
), "Try adding to ANOVA call: na.rm = TRUE"))
expect_is(aov_ez(
id = "pno",
dv = "acc",
data = stroop_e1_na,
within = c("congruency", "condition"),
na.rm = TRUE,
include_aov = FALSE,
fun_aggregate = mean
), "afex_aov")
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.