Nothing
# Test helper functions
set.seed(51315)
# Trimming data frame----
test_that("Trimming results in correct size", {
skip_on_cran()
data(InstEval)
trimDat <- merTools:::trimModelFrame(InstEval)
expect_gt(nrow(InstEval), nrow( merTools:::trimModelFrame(InstEval)))
expect_equal(nrow(trimDat), 4065)
cbpp$obs <- 1:nrow(cbpp)
d1 <- cbpp
d1$y <- d1$incidence / d1$size
gm2 <- glmer(y ~ period +
(1 | herd),
family = binomial, data = d1, nAGQ = 9, weights = d1$size)
trimDat <- merTools:::trimModelFrame(gm2@frame)
expect_s3_class(trimDat, "data.frame")
expect_equal(nrow(trimDat), 18)
})
test_that("Trimming does not corrupt order", {
skip_on_cran()
tmp <- InstEval[1:10, ]
trimDat <- merTools:::trimModelFrame(InstEval)
trimDat <- rbind(tmp, trimDat)
expect_lt(nrow(trimDat), nrow(tmp) + nrow(InstEval))
row.names(tmp) <- NULL
row.names(trimDat) <- NULL
expect_identical(tmp, trimDat[1:10, ])
})
# subBoot and Theta----
# context("subBoot and Theta")
test_that("Can extract theta from a fit model", {
skip_on_cran()
set.seed(404)
d <- expand.grid(fac1=LETTERS[1:5], grp=factor(1:10),
obs=1:100)
suppressMessages({
d$y <- simulate( ~ fac1 + (1|grp),
newdata = d,
family = gaussian,
newparams = list(
"theta" = 0.22,
"beta" = c(2,1,3,4,7),
"sigma" = 0.23))[[1]]
})
subD <- d[sample(row.names(d), 1000),]
g1 <- lmer(y~fac1+(1|grp), data=subD)
g1b <- lm(y ~ fac1, data = subD)
expect_equal(thetaExtract(g1), 0.2285, tolerance = 0.1)
expect_error(thetaExtract(g1b))
z1 <- suppressMessages({
subBoot(g1, 500, FUN = thetaExtract, R = 10)
})
expect_s3_class(z1, "data.frame")
expect_equal(nrow(z1), 11)
expect_equal(ncol(z1), 2)
})
# Test formula Build-----
# context("Test formula build")
test_that("Formula works for additive functions", {
skip_on_cran()
n <- 20
x <- y <- rnorm(n)
z <- rnorm(n)
r <- sample(1:5, size=n, replace=TRUE)
d <- data.frame(x,y,z,r)
d2 <- expand.grid(a=factor(1:4),b=factor(1:4),rep=1:10)
n <- nrow(d2)
d2 <- transform(d2,r=sample(1:5, size=n, replace=TRUE),
z=rnorm(n))
d2 <- subset(d2,!(a=="4" & b=="4"))
fm <- lmer( z ~ a + b + (1|r), data=d2)
expect_s3_class(merTools:::formulaBuild(fm), "formula")
expect_identical(merTools:::formulaBuild(fm), as.formula("z ~ a + b"))
})
test_that("Formula works for interactions", {
skip_on_cran()
n <- 200
x <- y <- rnorm(n)
z <- rnorm(n)
r <- sample(1:5, size=n, replace=TRUE)
d <- data.frame(x,y,z,r)
d2 <- expand.grid(a=factor(1:4),b=factor(1:4), c = factor(1:4), rep=1:10)
n <- nrow(d2)
d2 <- transform(d2,r=sample(1:5, size=n, replace=TRUE),
z=rnorm(n))
d2 <- subset(d2,!(a=="4" & b=="4"))
d2$x <- rnorm(nrow(d2))
suppressMessages({
fm <- lmer( z ~ a * b + c + (1|r), data=d2)
})
expect_s3_class(merTools:::formulaBuild(fm), "formula")
expect_identical(merTools:::formulaBuild(fm), as.formula("z ~ a * b + c"))
suppressMessages({
fm <- lmer( z ~ a * b * c + (1|r), data=d2)
})
expect_s3_class(merTools:::formulaBuild(fm), "formula")
expect_identical(merTools:::formulaBuild(fm), as.formula("z ~ a * b * c"))
suppressMessages({
fm <- lmer( z ~ a * b * c + x + I(x^2) + (1 + c|r), data=d2)
})
expect_s3_class(merTools:::formulaBuild(fm), "formula")
expect_identical(merTools:::formulaBuild(fm), as.formula("z ~ a * b * c + x + I(x^2)"))
})
test_that("Build model matrix produces matrices of the right size", {
skip_on_cran()
d <- expand.grid(fac1 = LETTERS[1:5],
grp = letters[11:20],
obs = 1:50)
suppressMessages({
d$y <- simulate(~fac1 + (1 | grp), family = binomial,
newdata = d,
newparams = list( "theta" = c(.33),
"beta" = c(2,-1,3,-2,1.2)),
seed =634)[[1]]
})
subD <- d[sample(row.names(d), 1200), ]
g1 <- glmer(y~fac1+(1|grp), data=subD, family = 'binomial')
d$fitted <- predict(g1, d)
mm <- merTools:::buildModelMatrix(g1, newdata = d, which = "full")
expect_true(inherits(mm, "matrix") || inherits(mm, "Matrix"))
expect_equal(dim(mm), c(2500, 15))
}
)
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.