
Subjects Meeting Specific Postbaseline Hypotension Levels, Safety Population, Pooled Analysis (or Trial X)
FDA Table 38
table
FDA
safety
vital signs
Code
# Load libraries & data -------------------------------------
library(dplyr)
library(cards)
library(gtsummary)
adsl <- pharmaverseadam::adsl
advs <- pharmaverseadam::advs
# Pre-processing --------------------------------------------
adsl <- adsl |>
filter(SAFFL == "Y") # safety population
data <- advs |>
filter(
# safety population
SAFFL == "Y",
# diastolic & systolic blood pressure
PARAMCD %in% c("DIABP", "SYSBP"),
# post-baseline visits
AVISITN >= 2
) |>
# analyze minimum values per parameter of each subject
slice_min(AVAL, n = 1L, by = c(USUBJID, PARAMCD)) |>
# define analysis value cutoffs per parameter
mutate(
SBP90 = PARAMCD == "SYSBP" & AVAL < 90, # SYSBP <90
DBP60 = PARAMCD == "DIABP" & AVAL < 60 # DIABP <60
)Code
{cards} data frame: 21 x 11
group1 group1_level variable variable_level context stat_name stat_label stat fmt_fun warning error
1 TRT01A Placebo SBP90 TRUE tabulate… n n 8 0
2 TRT01A Placebo SBP90 TRUE tabulate… p % 0.095 <fn>
3 TRT01A Placebo DBP60 TRUE tabulate… n n 32 0
4 TRT01A Placebo DBP60 TRUE tabulate… p % 0.381 <fn>
5 TRT01A Xanomeli… SBP90 TRUE tabulate… n n 0 0
6 TRT01A Xanomeli… SBP90 TRUE tabulate… p % 0 <fn>
7 TRT01A Xanomeli… DBP60 TRUE tabulate… n n 27 0
8 TRT01A Xanomeli… DBP60 TRUE tabulate… p % 0.375 <fn>
9 TRT01A Xanomeli… SBP90 TRUE tabulate… n n 1 0
10 TRT01A Xanomeli… SBP90 TRUE tabulate… p % 0.011 <fn>
11 TRT01A Xanomeli… DBP60 TRUE tabulate… n n 29 0
12 TRT01A Xanomeli… DBP60 TRUE tabulate… p % 0.309 <fn>
13 <NA> TRT01A Placebo tabulate n n 86 0
14 <NA> TRT01A Placebo tabulate N N 254 0
15 <NA> TRT01A Placebo tabulate p % 0.339 <fn>
16 <NA> TRT01A Xanomeli… tabulate n n 72 0
17 <NA> TRT01A Xanomeli… tabulate N N 254 0
18 <NA> TRT01A Xanomeli… tabulate p % 0.283 <fn>
19 <NA> TRT01A Xanomeli… tabulate n n 96 0
20 <NA> TRT01A Xanomeli… tabulate N N 254 0
21 <NA> TRT01A Xanomeli… tabulate p % 0.378 <fn>
Code
tbl <- tbl_ard_summary(
ard,
by = TRT01A,
# Add labels for each range
label = list(
SBP90 = "SBP<90",
DBP60 = "DBP<60"
)
) |>
modify_header(
# Update label, add analysis value units
label ~ paste0("**Blood Pressure (", data$VSORRESU[1], ")**"),
# Add N values to `by` variable labels
all_stat_cols() ~ "**{level}** \nN = {n}"
)
tbl