skip_if_not_installed("lme4")
test_that("find_terms by formula", {
data(mtcars)
m <- lm(mpg ~ log(hp) * (am + factor(cyl)), data = mtcars)
## FIXME: this is currently wrong behaviour
expect_identical(
find_terms(m),
list(response = "mpg", conditional = c("log(hp)", "(am", "factor(cyl))"))
)
expect_identical(
find_terms(m, as_term_labels = TRUE),
list(conditional = c(
"log(hp)", "am", "factor(cyl)", "log(hp):am",
"log(hp):factor(cyl)"
))
)
})
test_that("find_terms", {
m <- lm(Sepal.Length ~ -1 + Petal.Width + Species, data = iris)
expect_identical(
find_terms(m),
list(response = "Sepal.Length", conditional = c("Petal.Width", "Species", "-1"))
)
expect_false(has_intercept(m))
})
test_that("find_terms", {
m <- lm(Sepal.Length ~ 0 + Petal.Width + Species, data = iris)
expect_identical(
find_terms(m),
list(response = "Sepal.Length", conditional = c("0", "Petal.Width", "Species"))
)
expect_false(has_intercept(m))
})
test_that("find_terms", {
m <- lm(Sepal.Length ~ Petal.Width + Species - 1, data = iris)
expect_identical(
find_terms(m),
list(response = "Sepal.Length", conditional = c("Petal.Width", "Species", "-1"))
)
expect_false(has_intercept(m))
})
set.seed(1984)
dat <- data.frame(
y = rnorm(100 * 5, sd = 1 - 0.20),
time = rep(1:10, 10 * 5),
g1 = sort(rep(1:100, 5)),
g2 = sort(rep(1:10, 10 * 5))
)
dat$g0 <- paste(dat$time, dat$g1)
dat$time1 <- dat$time - 8
dat$post <- 0
dat$post[dat$time >= 8] <- 1
m <- suppressMessages(lme4::lmer(y ~ post + time1 + (post + time1 - 1 | g2), data = dat))
test_that("find_terms", {
expect_identical(
find_terms(m),
list(response = "y", conditional = c("post", "time1"), random = c("post", "time1", "g2"))
)
expect_true(has_intercept(m))
})
test_that("find_terms, - in response", {
m <- lm(Sepal.Length - Sepal.Width ~ Species, data = iris)
expect_identical(find_terms(m)$response, c("Sepal.Length", "Sepal.Width"))
m <- lm(cbind(Sepal.Length - Sepal.Width) ~ Species, data = iris)
expect_identical(find_terms(m)$response, "cbind(Sepal.Length - Sepal.Width)")
m <- lm(Sepal.Length^-0.5 ~ Species, data = iris)
expect_identical(find_terms(m)$response, "Sepal.Length^-0.5")
m <- lm(I(Sepal.Length^-0.5) ~ Species, data = iris)
expect_identical(find_terms(m)$response, "I(Sepal.Length^-0.5)")
})
test_that("find_terms, - response as is", {
data(iris)
m <- lm(1 / Sepal.Length ~ Species, data = iris)
expect_identical(find_terms(m)$response, "1/Sepal.Length")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.