Nothing
library("testthat")
library(rms)
test_that("Basic test for coverage for simpleRmsAnova", {
# TODO: Add more specific tests
# ** Borrowed code from the lrm example **
n <- 1000 # define sample size
set.seed(17) # so can reproduce the results
age <- rnorm(n, 50, 10)
blood.pressure <- rnorm(n, 120, 15)
cholesterol <- rnorm(n, 200, 25)
sex <- factor(sample(c("female", "male"), n, TRUE))
label(age) <- "Age" # label is in Hmisc
label(cholesterol) <- "Total Cholesterol"
label(blood.pressure) <- "Systolic Blood Pressure"
label(sex) <- "Sex"
units(cholesterol) <- "mg/dl" # uses units.default in Hmisc
units(blood.pressure) <- "mmHg"
# To use prop. odds model, avoid using a huge number of intercepts by
# grouping cholesterol into 40-tiles
# Specify population model for log odds that Y = 1
L <- .4 * (sex == "male") + .045 * (age - 50) +
(log(cholesterol - 10) - 5.2) * (-2 * (sex == "female") + 2 * (sex == "male"))
# Simulate binary y to have Prob(y = 1) = 1/[1+exp(-L)]
y <- ifelse(runif(n) < plogis(L), 1, 0)
cholesterol[1:3] <- NA # 3 missings, at random
ddist <<- datadist(age, blood.pressure, cholesterol, sex)
options(datadist = "ddist")
fit_lrm <- lrm(y ~ blood.pressure + sex * (age + rcs(cholesterol, 4)),
x = TRUE, y = TRUE
)
a_out <- anova(fit_lrm,
dec.F = 1,
ss = FALSE
)
a <- simpleRmsAnova(a_out,
subregexps = rbind(
c("blood.pressure", "Blood pressure"),
c("age", "Age"),
c("cholesterol", "Cholesterol"),
c("sex", "Sex")
),
caption = "Anova output for a logistic regression model"
)
expect_equivalent(dim(a), dim(a_out))
expect_equivalent(sum(grepl("Blood pressure", dimnames(a)[[1]], fixed = TRUE)), 1)
sink(file = ifelse(Sys.info()["sysname"] == "Windows",
"NUL",
"/dev/null"
))
p_out <- print(a)
sink()
expect_true(inherits(p_out, "htmlTable"))
a <- simpleRmsAnova(a_out,
caption = "Anova output for a logistic regression model"
)
expect_equivalent(sum(grepl("Blood pressure", dimnames(a)[[1]], fixed = TRUE)), 0)
})
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.