Skip to contents

The interactive AE forest plots include AE-specific tables that present both numerical and visual summaries of the following:

  • The number of subjects experiencing AEs in each arm
  • The percentage of subjects with AEs in each arm
  • Differences in AE proportions between arms
  • Confidence intervals for these AE proportion differences

In this vignette, we guide users through customizing (show/hide) the columns displayed in the AE-specific table.

Step 1: build your metadata

Building interactive AE forest plots starts with constructing the metadata. The detailed procedure for building metadata is covered in the vignette Generate Interactive AE Forest Plots with Drill Down to AE Listing. Therefore, in this vignette, we will skip those details and directly use the metadata created there.

adsl <- forestly_adsl
adae <- forestly_adae

adsl$TRTA <- factor(forestly_adsl$TRT01A, 
                    levels = c("Xanomeline Low Dose", "Placebo"), 
                    labels = c("Low Dose", "Placebo"))
adae$TRTA <- factor(forestly_adae$TRTA, 
                    levels = c("Xanomeline Low Dose", "Placebo"), 
                    labels = c("Low Dose", "Placebo"))

meta <- meta_adam(population = adsl, observation = adae) |>
  define_plan(plan = plan(analysis = "ae_forestly", 
                          population = "apat",
                          observation = "apat", 
                          parameter = "any;drug-related")) |>
  define_analysis(name = "ae_forestly", label = "Interactive Forest Plot") |>
  define_population(name = "apat", group = "TRTA", id = "USUBJID",
                    subset = SAFFL == "Y", label = "All Patient as Treated") |>
  define_observation(name = "apat", group = "TRTA", 
                     subset = SAFFL == "Y", label = "All Patient as Treated") |>
  define_parameter(name = "any", 
                   subset = NULL,
                   label = "Any AEs", 
                   var = "AEDECOD", soc = "AEBODSYS") |>
  define_parameter(name = "drug-related", 
                   subset = toupper(AREL) == "RELATED",
                   label = "Drug-related AEs", 
                   var = "AEDECOD", soc = "AEBODSYS") |>  
  meta_build()

Step 2: customize the AE specific columns

Users can tailor the AE-specific columns by specifying the display = ... argument within the format_ae_forestly() function. The available options are as follows:

  • "n": Displays a column with the number of subjects experiencing AEs.
  • "prop": Displays a column with the proportion of subjects experiencing AEs.
  • "diff": Displays a column showing the difference in AE proportions between arms.
  • "fig_prop": Displays a column visualizing AE proportions.
  • "fig_diff": Displays a column visualizing differences in AE proportions between arms.
  • "total": Displays a column reporting pooled results from both control and experimental arms.

By default, display = c("n", "prop", "fig_prop", "fig_diff") is used, which includes: (1) the number of subjects with AEs in each arm, (2) the AE proportion in each arm, (3) a visualization of AE proportions, (4) a visualization of AE proportion differences.

In the example below, we demonstrate how to add a total column alongside the default display settings.

meta |>
  prepare_ae_forestly() |>
  format_ae_forestly(display = c("n", "prop", "fig_prop", "fig_diff", "total")) |>
  ae_forestly()