cardinal
  • Home
  • Template Library
    • FDA Table 2
    • FDA Table 3
    • FDA Table 4
    • FDA Table 5
    • FDA Table 6
    • FDA Table 7
    • FDA Table 8
    • FDA Table 9
    • FDA Table 10
    • FDA Table 11
    • FDA Table 12
    • FDA Table 13
    • FDA Table 14
    • FDA Table 15
    • FDA Table 16
    • FDA Table 17
    • FDA Table 18
    • FDA Table 20
    • FDA Table 21
    • FDA Table 22
    • FDA Table 32
    • FDA Table 33
    • FDA Table 34
    • FDA Table 35
    • FDA Table 36
    • FDA Figure 1
    • FDA Figure 2
    • FDA Figure 3
    • FDA Figure 14
  • About
  • Resources
  • Help
    • Getting Started
    • Report a Bug
    • FAQ

FDA Table 20

Adverse Events of Special Interest Assessment, Safety Population, Pooled Analysis (or Trial X)

  • Spec. Screenshot
  • rtables Table
  • rtables Table Setup
  • Function Details

                                A: Drug X    B: Placebo    C: Combination   Risk Difference (%) (95% CI)
AESI Assessment                  (N=134)       (N=134)        (N=132)                 (N=268)           
————————————————————————————————————————————————————————————————————————————————————————————————————————
AE grouping related to AESI    107 (79.9%)   112 (83.6%)    113 (85.6%)          3.7 (-5.5 - 13.0)      
  dcd A.1.1.1.1                50 (37.3%)    45 (33.6%)      63 (47.7%)          -3.7 (-15.2 - 7.7)     
  dcd A.1.1.1.2                48 (35.8%)    48 (35.8%)      50 (37.9%)          0.0 (-11.5 - 11.5)     
  dcd D.1.1.1.1                50 (37.3%)    42 (31.3%)      51 (38.6%)          -6.0 (-17.3 - 5.4)     
  dcd D.1.1.4.2                48 (35.8%)    42 (31.3%)      50 (37.9%)          -4.5 (-15.8 - 6.8)     
  dcd D.2.1.5.3                47 (35.1%)    58 (43.3%)      57 (43.2%)          8.2 (-3.4 - 19.9)      
Maximum severity                                                                                        
  MILD                         16 (11.9%)    19 (14.2%)      17 (12.9%)          2.2 (-5.8 - 10.3)      
  MODERATE                     41 (30.6%)    51 (38.1%)      45 (34.1%)          7.5 (-3.9 - 18.8)      
  SEVERE                       50 (37.3%)    42 (31.3%)      51 (38.6%)          -6.0 (-17.3 - 5.4)     
Serious                        75 (70.1%)    77 (68.8%)      83 (73.5%)          1.5 (-10.4 - 13.4)     
  Deaths                       50 (46.7%)    42 (37.5%)      51 (45.1%)          -6.0 (-17.3 - 5.4)     
Resulting in discontinuation   35 (32.7%)    34 (30.4%)      33 (29.2%)          -0.7 (-11.2 - 9.7)     
Relatedness                    74 (69.2%)    74 (66.1%)      84 (74.3%)          0.0 (-11.9 - 11.9)     
Laboratory Assessment          89 (66.4%)    86 (64.2%)      90 (68.2%)          -2.2 (-13.6 - 9.2)     
# Load Libraries & Data
library(cardinal)

adsl <- random.cdisc.data::cadsl
adae <- random.cdisc.data::cadae

# Pre-Processing - Add/create any required variables in adae
set.seed(1)
adae$AESIFL <- ifelse(adae$AESOC %in% c("cl A", "cl D"), "Y", "N")
adae$AELABFL <- sample(c("Y", "N"), nrow(adae), replace = TRUE)

# Select Preferred Term Variable
pref_var <- "AEDECOD"

# Output Table
risk_diff <- list(arm_x = "B: Placebo", arm_y = "A: Drug X") # optional
make_table_20(
  adae = adae, alt_counts_df = adsl, pref_var = pref_var, aesifl_var = "AESIFL",
  aelabfl_var = "AELABFL", risk_diff = risk_diff
)

make_table_20()


Required variables:

  • adae: USUBJID, AESEV, AESER, AESDTH, EOSSTT, AEREL, and the variables specified by pref_var, aesifl_var, aelabfl_var, arm_var, and saffl_var.
  • alt_counts_df (if specified): USUBJID and the variables specified by arm_var and saffl_var.
Argument Description Default
adae (data.frame) Dataset (typically ADAE) required to build table. No default
alt_counts_df (character) Alternative dataset (typically ADSL) used only to calculate column counts. NULL
show_colcounts (flag) Whether column counts should be printed. TRUE
arm_var (character) Arm variable used to split table into columns. "ARM"
saffl_var (character) Flag variable used to indicate inclusion in safety population. "SAFFL"
pref_var (character) Preferred term variable from adae to include in the table. "AEDECOD"
aesifl_var (character) Variable from adae that indicates adverse events of special interest. "AESIFL"
aelabfl_var (character) Variable from adae that indicates a laboratory assessment. "AELABFL"
lbl_overall (character) If specified, an overall column will be added to the table with the given value as the column label. NULL
risk_diff

(named list) List of settings to apply to add a risk difference column to the table. See tern::add_riskdiff() for more details. List should contain the following elements:

  • arm_x: (required) the name of reference arm.

  • arm_y: (required) the name of the arm to compare to the reference arm.

  • col_label: (optional) label to use for the risk difference column. Defaults to "Risk Difference (%) (95% CI)".

  • pct: (optional) whether the output should be returned as percentages. Defaults to TRUE.

NULL
prune_0 (flag) Whether all-zero rows should be removed from the table. TRUE
annotations (named list of character) List of annotations to add to the table. Valid annotation types are title, subtitles, main_footer, and prov_footer. Each name-value pair should use the annotation type as name and the desired string as value. NULL

Source code for this function is available here.

Source Code
---
title: FDA Table 20
subtitle: Adverse Events of Special Interest Assessment, Safety Population, Pooled Analysis (or Trial X)
format: html
---

::: panel-tabset
## Spec. Screenshot

![](../assets/images/screenshots/table_20.png){width="75%" fig-align="center"}

## rtables Table

```{r tbl, message=FALSE, warning=FALSE}
# Load Libraries & Data
library(cardinal)

adsl <- random.cdisc.data::cadsl
adae <- random.cdisc.data::cadae

# Pre-Processing - Add/create any required variables in adae
set.seed(1)
adae$AESIFL <- ifelse(adae$AESOC %in% c("cl A", "cl D"), "Y", "N")
adae$AELABFL <- sample(c("Y", "N"), nrow(adae), replace = TRUE)

# Select Preferred Term Variable
pref_var <- "AEDECOD"

# Output Table
risk_diff <- list(arm_x = "B: Placebo", arm_y = "A: Drug X") # optional
make_table_20(
  adae = adae, alt_counts_df = adsl, pref_var = pref_var, aesifl_var = "AESIFL",
  aelabfl_var = "AELABFL", risk_diff = risk_diff
)
```

## rtables Table Setup

```{r tbl, eval=FALSE, echo=TRUE}
```

## Function Details

### `make_table_20()`

------------------------------------------------------------------------

Required variables:

-   **`adae`**: `USUBJID`, `AESEV`, `AESER`, `AESDTH`, `EOSSTT`, `AEREL`, and the variables specified by `pref_var`, `aesifl_var`, `aelabfl_var`, `arm_var`, and `saffl_var`.
-   **`alt_counts_df`** (if specified): `USUBJID` and the variables specified by `arm_var` and `saffl_var`.

+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| **Argument**     | **Description**                                                                                                                                                                                                                                                | **Default**  |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| `adae`           | (`data.frame`) Dataset (typically ADAE) required to build table.                                                                                                                                                                                               | *No default* |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| `alt_counts_df`  | (`character`) Alternative dataset (typically ADSL) used only to calculate column counts.                                                                                                                                                                       | `NULL`       |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| `show_colcounts` | (`flag`) Whether column counts should be printed.                                                                                                                                                                                                              | `TRUE`       |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| `arm_var`        | (`character`) Arm variable used to split table into columns.                                                                                                                                                                                                   | `"ARM"`      |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| `saffl_var`      | (`character`) Flag variable used to indicate inclusion in safety population.                                                                                                                                                                                   | `"SAFFL"`    |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| `pref_var`       | (`character`) Preferred term variable from `adae` to include in the table.                                                                                                                                                                                     | `"AEDECOD"`  |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| `aesifl_var`     | (`character`) Variable from `adae` that indicates adverse events of special interest.                                                                                                                                                                          | `"AESIFL"`   |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| `aelabfl_var`    | (`character`) Variable from `adae` that indicates a laboratory assessment.                                                                                                                                                                                     | `"AELABFL"`  |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| `lbl_overall`    | (`character`) If specified, an overall column will be added to the table with the given value as the column label.                                                                                                                                             | `NULL`       |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| `risk_diff`      | (named `list`) List of settings to apply to add a risk difference column to the table. See [`tern::add_riskdiff()`](https://insightsengineering.github.io/tern/main/reference/add_riskdiff.html) for more details. List should contain the following elements: | `NULL`       |
|                  |                                                                                                                                                                                                                                                                |              |
|                  | -   `arm_x`: (required) the name of reference arm.                                                                                                                                                                                                             |              |
|                  |                                                                                                                                                                                                                                                                |              |
|                  | -   `arm_y`: (required) the name of the arm to compare to the reference arm.                                                                                                                                                                                   |              |
|                  |                                                                                                                                                                                                                                                                |              |
|                  | -   `col_label`: (optional) label to use for the risk difference column. Defaults to `"Risk Difference (%) (95% CI)"`.                                                                                                                                         |              |
|                  |                                                                                                                                                                                                                                                                |              |
|                  | -   `pct`: (optional) whether the output should be returned as percentages. Defaults to `TRUE`.                                                                                                                                                                |              |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| `prune_0`        | (`flag`) Whether all-zero rows should be removed from the table.                                                                                                                                                                                               | `TRUE`       |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+
| `annotations`    | (named `list` of `character`) List of annotations to add to the table. Valid annotation types are `title`, `subtitles`, `main_footer`, and `prov_footer.` Each name-value pair should use the annotation type as name and the desired string as value.         | `NULL`       |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------+

Source code for this function is available [here](https://github.com/pharmaverse/cardinal/blob/main/R/fda-table_20.R).
:::
 
  • This website as well as code examples are licensed under the Apache License, Version 2.0.
Cookie Preferences