
Customize Columns in an AE Summary Table
Source:vignettes/ae-summary-custom-columns.Rmd
ae-summary-custom-columns.RmdOverview
The display argument of format_ae_summary()
selects and orders the statistics in an AE summary table. This vignette
demonstrates how to include risk-difference estimates and inference
results.
Define metadata
The example uses ADSL and ADAE data from the forestly package.
The metadata follows the same approach used in the AE Summary in RTF format vignette.
adsl <- forestly::forestly_adsl
adae <- forestly::forestly_adae
adsl$TRT01A <- factor(
adsl$TRT01A,
levels = c("Xanomeline Low Dose", "Placebo"),
labels = c("Low Dose", "Placebo")
)
adae$TRTA <- factor(
adae$TRTA,
levels = c("Xanomeline Low Dose", "Placebo"),
labels = c("Low Dose", "Placebo")
)
analysis_plan <- metalite::plan(
analysis = "ae_summary",
population = "apat",
observation = "wk12",
parameter = "any;rel;ser"
)
meta <- metalite::meta_adam(observation = adae, population = adsl) |>
metalite::define_plan(analysis_plan) |>
metalite::define_population(
name = "apat",
var = c("USUBJID", "SAFFL", "TRT01A"),
group = "TRT01A",
subset = SAFFL == "Y",
label = "All Participants as Treated"
) |>
metalite::define_observation(
name = "wk12",
var = c(
"USUBJID", "SAFFL", "TRTA", "AEDECOD", "AEBODSYS", "AEREL",
"AESER"
),
group = "TRTA",
subset = SAFFL == "Y",
label = "Weeks 0 to 12"
) |>
metalite::define_parameter(
name = "any",
term1 = "",
term2 = "",
var = "AEDECOD",
soc = "AEBODSYS",
label = "All AEs"
) |>
metalite::define_parameter(
name = "rel",
term1 = "Drug-Related",
term2 = "",
subset = AEREL %in% c("POSSIBLE", "PROBABLE"),
var = "AEDECOD",
soc = "AEBODSYS",
label = "Drug-related AEs"
) |>
metalite::define_parameter(
name = "ser",
term1 = "Serious",
term2 = "",
subset = AESER == "Y",
var = "AEDECOD",
soc = "AEBODSYS",
label = "Serious AEs"
) |>
metalite::define_analysis(
name = "ae_summary",
title = "Adverse Event Summary"
) |>
metalite::meta_build()Select columns
Use extend_ae_specific_inference() to add confidence
intervals and p-values based on the Miettinen and Nurminen (M&N)
method. For details, see the rate
compare vignette.
After extending the analysis, use display in
format_ae_summary() to select statistics and set their
order. Available options are:
-
"n": number of participants with an adverse event. -
"prop": proportion of participants with an adverse event. -
"total": total columns. -
"diff": risk difference. -
"diff_ci": 95% confidence interval for the risk difference using the Miettinen and Nurminen method. -
"diff_p": p-value for the risk difference using the Miettinen and Nurminen method. -
"dur": average adverse event duration. -
"events_avg": average number of adverse events per participant. -
"events_count": number of adverse events per participant.
The "diff_ci" and "diff_p" statistics are
added by extend_ae_specific_inference(), "dur"
is added by extend_ae_specific_duration(), and the event
statistics are added by extend_ae_specific_events().
For example, include "diff" in addition to the number
and proportion of participants with an adverse event:
rtf_dir <- if (dir.exists("vignettes/rtf")) "vignettes/rtf" else "rtf"
rtf_file <- file.path(rtf_dir, "ae0summary2.rtf")
prepare_ae_summary(
meta,
population = "apat",
observation = "wk12",
parameter = "any;rel;ser"
) |>
extend_ae_specific_inference() |>
format_ae_summary(display = c("n", "prop", "diff", "diff_ci")) |>
tlf_ae_summary(
source = "Source: [CDISCpilot: adam-adsl; adae]",
analysis = "ae_summary", # Provide analysis type defined in meta$analysis
col_rel_width = c(3, rep(1, 6)),
path_outtable = rtf_file
)
#> any
#> rel
#> ser
#> The output is saved in/home/runner/work/metalite.ae/metalite.ae/vignettes/rtf/ae0summary2.rtfGenerated RTF file: ae0summary2.rtf