Nothing
dat <- mmrm_test_data
dat$EXTRA <- factor(c(rep("A", 10), rep("B", nrow(dat) - 10))) # nolint
formatters::var_labels(dat) <- c(
"Subject ID",
"Visit No.",
"Treatment",
"Race",
"Gender",
"FEV1 at Baseline",
"FEV1 measurement",
"Extra variable"
)
mmrm_results <- fit_mmrm(
vars = list(
response = "FEV1",
covariates = c("RACE", "SEX"),
id = "USUBJID",
arm = "ARMCD",
visit = "AVISIT"
),
data = dat,
cor_struct = "unstructured",
averages_emmeans = list("VIS1+2" = c("VIS1", "VIS2"))
)
# h_mmrm_subgroup_df ----
test_that("h_mmrm_subgroup_df works as expected for overall group", {
result <- h_mmrm_subgroup_df(
lsmeans = mmrm_results$lsmeans,
overall_fit = mmrm_results,
is_in_subset = rep(TRUE, nrow(mmrm_test_data)),
visit = "VIS3",
treatment_arm = "TRT",
subgroup = "All",
var = "ALL",
label = "All Patients"
)
expected <- list(
estimates = data.frame(
arm = factor(c("PBO", "TRT")),
n = c(71L, 58L),
lsmean = c(43.3, 46.4),
subgroup = c("All", "All"),
var = c("ALL", "ALL"),
var_label = c("All Patients", "All Patients"),
row_type = c("content", "content")
),
contrasts = data.frame(
n_tot = 129L,
diff = 3.1,
lcl = 1.7,
ucl = 4.4,
pval = 0.00001,
conf_level = 0.95,
subgroup = "All",
var = "ALL",
var_label = "All Patients",
row_type = "content"
)
)
expect_equal(result, expected, tolerance = 1e-1)
})
test_that("h_mmrm_subgroup_df works as expected for subgroup when fit did not converge", {
result <- h_mmrm_subgroup_df(
lsmeans = NULL,
overall_fit = mmrm_results,
is_in_subset = c(FALSE, rep(TRUE, nrow(mmrm_test_data) - 1)),
visit = "VIS2",
treatment_arm = "TRT",
subgroup = "Sub",
var = "FOO",
label = "Foo subgroup"
)
expected <- list(
estimates = data.frame(
arm = factor(c("PBO", "TRT")),
n = c(69L, 71L),
lsmean = as.numeric(c(NA, NA)),
subgroup = c("Sub", "Sub"),
var = c("FOO", "FOO"),
var_label = c("Foo subgroup", "Foo subgroup"),
row_type = c("analysis", "analysis")
),
contrasts = data.frame(
n_tot = 128L,
diff = as.numeric(NA),
lcl = as.numeric(NA),
ucl = as.numeric(NA),
pval = as.numeric(NA),
conf_level = 0.95,
subgroup = "Sub",
var = "FOO",
var_label = "Foo subgroup",
row_type = "analysis"
)
)
expect_equal(result, expected, tolerance = 1e-1)
})
# extract_mmrm_subgroups ----
test_that("extract_mmrm_subgroups works as expected", {
result <- extract_mmrm_subgroups(
fit = mmrm_results,
visit = "VIS3",
subgroups = c("RACE", "SEX")
)
expect_snapshot_value(result, tolerance = 1e-2, style = "serialize")
})
test_that("extract_mmrm_subgroups works as expected without subgroup variables", {
result <- extract_mmrm_subgroups(
fit = mmrm_results,
visit = "VIS2"
)
expect_snapshot_value(result, tolerance = 1e-2, style = "serialize")
})
test_that("extract_mmrm_subgroups works as expected with groups_lists", {
result <- extract_mmrm_subgroups(
fit = mmrm_results,
visit = "VIS2",
subgroups = "RACE",
groups_lists = list(RACE = list(
"A" = c("Asian", "Black or African American"),
"B" = c("Black or African American", "White")
))
)
expect_snapshot_value(result, tolerance = 1e-2, style = "serialize")
})
test_that("extract_mmrm_subgroups works when model does not work for some subgroups", {
expect_message(result <- extract_mmrm_subgroups(
fit = mmrm_results,
visit = "VIS1+2",
subgroups = c("SEX", "EXTRA")
))
expect_snapshot_value(result, tolerance = 1e-2, style = "serialize")
})
# a_mmrm_subgroups ----
test_that("a_mmrm_subgroups works as expected", {
result <- a_mmrm_subgroups(list(n = "xx."))
expect_list(result, len = 1L)
expect_function(result$n, args = c("df", "labelstr"))
})
# tabulate_mmrm_subgroups ----
test_that("tabulate_mmrm_subgroups works as expected", {
df <- extract_mmrm_subgroups(
fit = mmrm_results,
visit = "VIS3",
subgroups = c("RACE", "SEX")
)
tab <- basic_table() %>%
tabulate_mmrm_subgroups(df)
tab_matrix <- to_string_matrix(tab, with_spaces = FALSE)
expect_snapshot_value(tab_matrix, style = "serialize")
forest <- g_forest(tab, logx = FALSE, xlim = c(-10, 10), x_at = c(-10, -5, 0, 5, 10), vline = 0)
skip_on_ci()
vdiffr::expect_doppelganger("MMRM forest plot", function() grid::grid.draw(forest))
})
test_that("tabulate_mmrm_subgroups with custom settings works as expected", {
df <- extract_mmrm_subgroups(
fit = mmrm_results,
visit = "VIS1+2",
subgroups = "SEX"
)
tab <- basic_table() %>%
tabulate_mmrm_subgroups(
df,
vars = c("diff", "ci", "n_tot", "pval"),
.formats = list(
n_tot = "xx",
diff = "xx.",
ci = "(xx., xx.)",
pval = "xx.xx"
),
.labels = list(
n_tot = "Total",
diff = "Difference",
ci = "CI",
pval = "p"
)
)
tab_matrix <- to_string_matrix(tab, with_spaces = FALSE)
expect_snapshot_value(tab_matrix, style = "serialize")
forest <- g_forest(tab, logx = FALSE, xlim = c(-10, 10), x_at = c(-10, -5, 0, 5, 10), vline = 0)
skip_on_ci()
vdiffr::expect_doppelganger("MMRM forest plot with customizations", function() grid::grid.draw(forest))
})
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.