# Example 1
lyt_obs_levels <- basic_table() |>
split_cols_by("ARM") |>
split_rows_by("EOSSTT", child_labels = "hidden") |>
analyze("EOSSTT",
afun = a_two_tier,
extra_args = list(
grp_fun = simple_analysis,
detail_fun = simple_analysis,
inner_var = "DCSREAS",
drill_down_levs = "DISCONTINUED"
)
)
tbl <- build_table(lyt_obs_levels, ex_adsl)
tbl
lyt_all_levels <- basic_table() |>
split_cols_by("ARM") |>
split_rows_by("EOSSTT", child_labels = "hidden") |>
analyze("EOSSTT",
afun = a_two_tier,
extra_args = list(
grp_fun = simple_analysis,
detail_fun = simple_analysis,
inner_var = "DCSREAS",
drill_down_levs = "DISCONTINUED",
use_all_levels = TRUE
)
)
adsl_subset <- subset(ex_adsl, DCSREAS != "ADVERSE EVENT")
levels(adsl_subset$DCSREAS)
tbl_all_levels <- build_table(lyt_all_levels, adsl_subset)
tbl_all_levels
tbl_obs_levels <- build_table(lyt_obs_levels, adsl_subset)
tbl_obs_levels
# Example 2
library(dplyr)
trtvar <- "ARM"
ctrl_grp <- "B: Placebo"
adsl <- ex_adsl |> select(c("USUBJID", "STRATA1", "EOSSTT", "DCSREAS", all_of(trtvar)))
adsl$colspan_trt <- factor(
ifelse(adsl[[trtvar]] == ctrl_grp, " ", "Active Study Agent"),
levels = c("Active Study Agent", " ")
)
adsl$rrisk_header <- "Risk Difference (%) (95% CI)"
adsl$rrisk_label <- paste(adsl[[trtvar]], paste("vs", ctrl_grp))
colspan_trt_map <- create_colspan_map(
df = adsl,
non_active_grp = ctrl_grp,
non_active_grp_span_lbl = " ",
active_grp_span_lbl = "Active Study Agent",
colspan_var = "colspan_trt",
trt_var = trtvar
)
a_freq_j_args <- list(
.stats = "count_unique_fraction",
denom = "n_altdf",
ref_path = c("colspan_trt", " ", trtvar, ctrl_grp)
)
two_tier_args <- list(
grp_fun = a_freq_j,
detail_fun = a_freq_j,
inner_var = "DCSREAS",
drill_down_levs = "DISCONTINUED"
)
lyt_rrisk <- basic_table() |>
split_cols_by("colspan_trt", split_fun = trim_levels_to_map(map = colspan_trt_map)) |>
split_cols_by(trtvar) |>
split_cols_by("rrisk_header", nested = FALSE) |>
split_cols_by(trtvar, labels_var = "rrisk_label", split_fun = remove_split_levels(ctrl_grp)) |>
split_rows_by("STRATA1") |>
split_rows_by("EOSSTT", child_labels = "hidden") |>
analyze("EOSSTT", afun = a_two_tier, extra_args = c(two_tier_args, a_freq_j_args))
adsl_subset <- subset(
adsl,
EOSSTT != "COMPLETED" & (is.na(DCSREAS) | DCSREAS != "PROTOCOL VIOLATION")
)
tbl_rrisk <- build_table(lyt_rrisk, adsl_subset, alt_counts_df = adsl_subset)
tbl_rrisk
Run the code above in your browser using DataLab