
Adjusting Column Widths for Optimal Layout
Source:vignettes/customize-width.Rmd
customize-width.RmdThe interactive AE forest plots include AE-specific tables presenting numerical values for AE proportions, differences, and confidence intervals (CI), alongside their visualizations. Each type of information is displayed in a separate column. In this vignette, we demonstrate how to customize the column widths in these tables.
General Use
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: adjusting column widths
Users can control the column widths using the following arguments:
-
width_term = ...: Sets the width (in pixels) of the column displaying the AE preferred term. -
width_fig = ...: Sets the width (in pixels) of the column displaying the AE proportions and their differences visually. -
width_n = ...: Sets the width (in pixels) of the columns reporting the numerical counts of subjects with the AE term (the “N” columns). -
width_prop = ...: Sets the width (in pixels) of the columns reporting the numerical AE proportions (the “(%)” columns). -
width_diff = ...: Sets the width (in pixels) of the columns reporting the numerical AE proportion differences. -
footer_space = ...: Sets the vertical space (in pixels) between the legend and the bottom of the AE-specific table.
In the example below, we modify the column widths to better suit the display. Users are encouraged to adjust these widths to optimize the table layout for their preferred screen size and readability.
meta |>
prepare_ae_forestly() |>
format_ae_forestly(
width_term = 5, # width of the column of AE PT term
# widths of the column of subject with AE counts
width_n = 2,
# widths of the column of AE proportions
width_prop = 2,
# widths of plotting the AE proportions and differences
width_fig = 150,
# vertical space between legend and the table
footer_space = 100
) |>
ae_forestly()Multiple, Long Treatment Labels Example
Step 1: build example metadata
The datasets used here include five treatment arms with long labels.
adsl <- forestly_adsl
adae <- forestly_adae
set.seed(1234)
adsl$TRTA <- sample(
x = c("Control Arm A",
"Control Arm B",
"Active Arm (Mono): Drug X",
"Active Arm (Comb): Drug X + Drug A + Drug B + Drug C",
"Active Arm: Cumulative Drug X"),
size = nrow(adsl),
replace = TRUE
)
adae <- adae |>
dplyr::select(-TRTA) |>
dplyr::left_join(
adsl,
by = c("USUBJID"),
suffix = c("", ".y")
) |>
dplyr::select(-ends_with(".y"))
adsl$TRTA <- factor(
adsl$TRTA,
levels = c("Active Arm: Cumulative Drug X",
"Active Arm (Mono): Drug X",
"Active Arm (Comb): Drug X + Drug A + Drug B + Drug C",
"Control Arm A",
"Control Arm B")
)
adae$TRTA <- factor(
adae$TRTA,
levels = c("Active Arm: Cumulative Drug X",
"Active Arm (Mono): Drug X",
"Active Arm (Comb): Drug X + Drug A + Drug B + Drug C",
"Control Arm A",
"Control Arm B")
)
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: adjusting column widths
In this example, we adjust the column widths to accommodate the long
treatment labels and multiple treatment arms. To ensure sufficient space
for the legend, the width_fig is set to a larger value and
the footer_space is increased.
meta |>
prepare_ae_forestly() |>
format_ae_forestly(
footer_space = 210,
width_fig = 420,
display = c("n", "prop", "fig_prop", "fig_diff", "diff"),
color = c("#66203A", "#00857C", "#6ECEB2", "#BFED33", "#DFEd31")
) |>
ae_forestly()