FDA Table 14
Patients With Adverse Events by System Organ Class and FDA Medical Query, Safety Population, Pooled Analyses
table
FDA
safety
adverse events
Code
# Load libraries & data -------------------------------------
library(dplyr)
library(cards)
library(gtsummary)
adae <- random.cdisc.data::cadae |>
dplyr::rename(FMQ01SC = SMQ01SC, FMQ01NAM = SMQ01NAM)
adsl <- random.cdisc.data::cadsl
levels(adae$FMQ01SC) <- c("BROAD", "NARROW")
adae$FMQ01SC[is.na(adae$FMQ01SC)] <- "NARROW"
# Pre-processing --------------------------------------------
adae <- adae |>
# safety population
filter(SAFFL == "Y")
adsl <- adsl |>
filter(SAFFL == "Y") # safety population
Code
tbl <- adae |>
select(FMQ01SC, ARM, FMQ01NAM, AEBODSYS, USUBJID) |>
# setting an explicit level for NA values so empty strata combinations are shown.
mutate(across(everything(), ~ {
if (anyNA(.)) {
forcats::fct_na_value_to_level(as.factor(.), level = "<Missing>")
} else {
.
}
})) |>
tbl_strata(
strata = FMQ01SC,
~ tbl_hierarchical(
.x,
by = ARM,
variables = c(AEBODSYS, FMQ01NAM),
id = USUBJID,
denominator = adsl,
# variables to calculate rates for
include = c(FMQ01NAM),
label = list(FMQ01NAM ~ "FMQ", AEBODSYS ~ "System Organ Class")
)
)
tbl
[[1]]
[[1]]$tbl_hierarchical
{cards} data frame: 27 x 15
group1 group1_level group2 group2_level variable variable_level context stat_name stat_label stat stat_fmt fmt_fn warning error gts_column
1 <NA> <NA> ARM A: Drug X categori… n n 134 134 0 stat_1
2 <NA> <NA> ARM A: Drug X categori… N N 400 400 0 stat_1
3 <NA> <NA> ARM A: Drug X categori… p % 0.335 33.5 <fn> stat_1
4 <NA> <NA> ARM B: Place… categori… n n 134 134 0 stat_2
5 <NA> <NA> ARM B: Place… categori… N N 400 400 0 stat_2
6 <NA> <NA> ARM B: Place… categori… p % 0.335 33.5 <fn> stat_2
7 <NA> <NA> ARM C: Combi… categori… n n 132 132 0 stat_3
8 <NA> <NA> ARM C: Combi… categori… N N 400 400 0 stat_3
9 <NA> <NA> ARM C: Combi… categori… p % 0.33 33.0 <fn> stat_3
10 ARM A: Drug X AEBODSYS cl B.2 FMQ01NAM C.1.1.1.… hierarch… n n 48 48 <fn> stat_1
ℹ 17 more rows
ℹ Use `print(n = ...)` to see more rows
[[2]]
[[2]]$tbl_hierarchical
{cards} data frame: 63 x 15
group1 group1_level group2 group2_level variable variable_level context stat_name stat_label stat stat_fmt fmt_fn warning error gts_column
1 <NA> <NA> ARM A: Drug X categori… n n 134 134 0 stat_1
2 <NA> <NA> ARM A: Drug X categori… N N 400 400 0 stat_1
3 <NA> <NA> ARM A: Drug X categori… p % 0.335 33.5 <fn> stat_1
4 <NA> <NA> ARM B: Place… categori… n n 134 134 0 stat_2
5 <NA> <NA> ARM B: Place… categori… N N 400 400 0 stat_2
6 <NA> <NA> ARM B: Place… categori… p % 0.335 33.5 <fn> stat_2
7 <NA> <NA> ARM C: Combi… categori… n n 132 132 0 stat_3
8 <NA> <NA> ARM C: Combi… categori… N N 400 400 0 stat_3
9 <NA> <NA> ARM C: Combi… categori… p % 0.33 33.0 <fn> stat_3
10 ARM A: Drug X AEBODSYS cl A.1 FMQ01NAM <Missing> hierarch… n n 78 78 <fn> stat_1
ℹ 53 more rows
ℹ Use `print(n = ...)` to see more rows