TLG Catalog - Stable
  • Stable
    • Dev
  1. Tables
  2. Disclosures
  3. EUDRAT01
  • Introduction

  • Tables
    • ADA
      • ADAT01
      • ADAT02
      • ADAT03
      • ADAT04A
      • ADAT04B
    • Adverse Events
      • AET01
      • AET01_AESI
      • AET02
      • AET02_SMQ
      • AET03
      • AET04
      • AET04_PI
      • AET05
      • AET05_ALL
      • AET06
      • AET06_SMQ
      • AET07
      • AET09
      • AET09_SMQ
      • AET10
    • Concomitant Medications
      • CMT01
      • CMT01A
      • CMT01B
      • CMT02_PT
    • Deaths
      • DTHT01
    • Demography
      • DMT01
    • Disclosures
      • DISCLOSUREST01
      • EUDRAT01
      • EUDRAT02
    • Disposition
      • DST01
      • PDT01
      • PDT02
    • ECG
      • EGT01
      • EGT02
      • EGT03
      • EGT04
      • EGT05_QTCAT
    • Efficacy
      • AOVT01
      • AOVT02
      • AOVT03
      • CFBT01
      • CMHT01
      • COXT01
      • COXT02
      • DORT01
      • LGRT02
      • MMRMT01
      • ONCT05
      • RATET01
      • RBMIT01
      • RSPT01
      • TTET01
    • Exposure
      • EXT01
    • Lab Results
      • LBT01
      • LBT02
      • LBT03
      • LBT04
      • LBT05
      • LBT06
      • LBT07
      • LBT08
      • LBT09
      • LBT10
      • LBT10_BL
      • LBT11
      • LBT11_BL
      • LBT12
      • LBT12_BL
      • LBT13
      • LBT14
      • LBT15
    • Medical History
      • MHT01
    • Pharmacokinetic
      • PKCT01
      • PKPT02
      • PKPT03
      • PKPT04
      • PKPT05
      • PKPT06
      • PKPT07
      • PKPT08
      • PKPT11
    • Risk Management Plan
      • RMPT01
      • RMPT03
      • RMPT04
      • RMPT05
      • RMPT06
    • Safety
      • ENTXX
    • Vital Signs
      • VST01
      • VST02
  • Listings
    • ADA
      • ADAL02
    • Adverse Events
      • AEL01
      • AEL01_NOLLT
      • AEL02
      • AEL02_ED
      • AEL03
      • AEL04
    • Concomitant Medications
      • CML01
      • CML02A_GL
      • CML02B_GL
    • Development Safety Update Report
      • DSUR4
    • Disposition
      • DSL01
      • DSL02
    • ECG
      • EGL01
    • Efficacy
      • ONCL01
    • Exposure
      • EXL01
    • Lab Results
      • LBL01
      • LBL01_RLS
      • LBL02A
      • LBL02A_RLS
      • LBL02B
    • Medical History
      • MHL01
    • Pharmacokinetic
      • ADAL01
      • PKCL01
      • PKCL02
      • PKPL01
      • PKPL02
      • PKPL04
    • Vital Signs
      • VSL01
  • Graphs
    • Efficacy
      • FSTG01
      • FSTG02
      • KMG01
      • MMRMG01
      • MMRMG02
    • Other
      • BRG01
      • BWG01
      • CIG01
      • IPPG01
      • LTG01
      • MNG01
    • Pharmacokinetic
      • PKCG01
      • PKCG02
      • PKCG03
      • PKPG01
      • PKPG02
      • PKPG03
      • PKPG04
      • PKPG06

  • Appendix
    • Reproducibility

  • Index

On this page

  • Output
  • Reproducibility
    • Timestamp
    • Session Info
    • .lock file
  • Edit this page
  • Report an issue
  1. Tables
  2. Disclosures
  3. EUDRAT01

EUDRAT01

Non-Serious Adverse Events Reported in \(\geq\) 5% of Patients in Any Treatment Group – Patients and Events


Output

  • Standard Table
  • Data Setup
  • Preview
  • Try this using WebR
Code
# Define the split function
split_fun <- drop_split_levels

lyt <- basic_table() %>%
  split_cols_by("ARM") %>%
  summarize_patients_events_in_cols(
    custom_label = "Total number of patients with at least one non-serious adverse event occuring at a relative frequency of >=5% and number of events" 
  ) %>%
  split_rows_by("AEBODSYS",
    nested = FALSE,
    split_fun = split_fun,
    indent_mod = -1L,
    label_pos = "topleft",
    split_label = obj_label(adae_trim$AEBODSYS)
  ) %>%
  split_rows_by("AEDECOD", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adae_trim$AEDECOD)) %>%
  summarize_patients_events_in_cols(
    col_split = FALSE
  )

result <- build_table(lyt, adae_trim)
result
Body System or Organ Class                                                                                                                     A: Drug X                      B: Placebo                    C: Combination        
  Dictionary-Derived Term                                                                                                            Patients (All)   Events (All)   Patients (All)   Events (All)   Patients (All)   Events (All)
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
Total number of patients with at least one non-serious adverse event occuring at a relative frequency of >=5% and number of events        106             360             112             367             112             421     
cl A.1                                                                                                                                                                                                                            
  dcd A.1.1.1.1                                                                                                                            50              64              45              62              63              88     
cl B.2                                                                                                                                                                                                                            
  dcd B.2.1.2.1                                                                                                                            49              65              44              62              52              66     
cl C.1                                                                                                                                                                                                                            
  dcd C.1.1.1.3                                                                                                                            43              55              46              63              43              64     
cl C.2                                                                                                                                                                                                                            
  dcd C.2.1.2.1                                                                                                                            35              48              48              53              55              65     
cl D.1                                                                                                                                                                                                                            
  dcd D.1.1.4.2                                                                                                                            48              66              42              55              50              64     
cl D.2                                                                                                                                                                                                                            
  dcd D.2.1.5.3                                                                                                                            47              62              58              72              57              74     
WarningExperimental use!

WebR is a tool allowing you to run R code in the web browser. Modify the code below and click run to see the results. Alternatively, copy the code and click here to open WebR in a new tab.

Define a trimming function get_adae_trimmed to filter for AEs of greater than 5% incidence rate.

Code
library(tern)
library(dplyr)

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

# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.
adsl <- df_explicit_na(adsl)
adae <- df_explicit_na(adae)

adae_nonser <- adae %>% filter(AESER != "Y", SAFFL == "Y")

get_adae_trimmed <- function(adsl, adae, cutoff_rate) {
  n_per_arm <- adsl %>%
    dplyr::count(ARM)

  anl_terms <- adae %>%
    dplyr::group_by(ARM, AEBODSYS, AEDECOD) %>%
    dplyr::count(
      unique_terms = n_distinct(USUBJID)
    ) %>%
    dplyr::select(-n) %>%
    dplyr::ungroup()

  anl_terms <- dplyr::left_join(
    anl_terms,
    n_per_arm,
    by = "ARM"
  ) %>%
    dplyr::mutate(
      ae_rate = unique_terms / n
    ) %>%
    dplyr::filter(ae_rate >= cutoff_rate) %>%
    dplyr::select(AEDECOD) %>%
    unique()

  anl <- dplyr::left_join(
    anl_terms,
    adae,
    by = "AEDECOD"
  )
  anl
}

adae_trim <- get_adae_trimmed(adsl, adae_nonser, cutoff_rate = 0.05)

Reproducibility

Timestamp

[1] "2026-06-17 18:33:27 UTC"

Session Info

─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.5.2 (2025-10-31)
 os       Ubuntu 24.04.4 LTS
 system   x86_64, linux-gnu
 ui       X11
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       Etc/UTC
 date     2026-06-17
 pandoc   3.9 @ /usr/bin/ (via rmarkdown)
 quarto   1.9.38 @ /usr/local/bin/quarto

─ Packages ───────────────────────────────────────────────────────────────────
 package           * version date (UTC) lib source
 backports           1.5.1   2026-04-03 [1] CRAN (R 4.5.2)
 brio                1.1.5   2024-04-24 [1] CRAN (R 4.5.2)
 broom               1.0.13  2026-05-14 [1] CRAN (R 4.5.2)
 checkmate           2.3.4   2026-02-03 [1] CRAN (R 4.5.2)
 cli                 3.6.6   2026-04-09 [1] CRAN (R 4.5.2)
 codetools           0.2-20  2024-03-31 [2] CRAN (R 4.5.2)
 curl                7.1.0   2026-04-22 [1] CRAN (R 4.5.2)
 dichromat           2.0-0.1 2022-05-02 [1] CRAN (R 4.5.2)
 digest              0.6.39  2025-11-19 [1] CRAN (R 4.5.2)
 dplyr             * 1.2.1   2026-04-03 [1] CRAN (R 4.5.2)
 evaluate            1.0.5   2025-08-27 [1] CRAN (R 4.5.2)
 farver              2.1.2   2024-05-13 [1] CRAN (R 4.5.2)
 fastmap             1.2.0   2024-05-15 [1] CRAN (R 4.5.2)
 forcats             1.0.1   2025-09-25 [1] CRAN (R 4.5.2)
 formatters        * 0.5.12  2025-12-08 [1] CRAN (R 4.5.2)
 generics            0.1.4   2025-05-09 [1] CRAN (R 4.5.2)
 ggplot2             4.0.3   2026-04-22 [1] CRAN (R 4.5.2)
 glue                1.8.1   2026-04-17 [1] CRAN (R 4.5.2)
 gtable              0.3.6   2024-10-25 [1] CRAN (R 4.5.2)
 htmltools           0.5.9   2025-12-04 [1] CRAN (R 4.5.2)
 htmlwidgets         1.6.4   2023-12-06 [1] CRAN (R 4.5.2)
 jsonlite            2.0.0   2025-03-27 [1] CRAN (R 4.5.2)
 knitr               1.51    2025-12-20 [1] CRAN (R 4.5.2)
 lattice             0.22-9  2026-02-09 [2] CRAN (R 4.5.2)
 lifecycle           1.0.5   2026-01-08 [1] CRAN (R 4.5.2)
 magrittr          * 2.0.5   2026-04-04 [1] CRAN (R 4.5.2)
 Matrix              1.7-5   2026-03-21 [1] CRAN (R 4.5.2)
 nestcolor           0.1.3   2025-01-21 [1] CRAN (R 4.5.2)
 otel                0.2.0   2025-08-29 [1] CRAN (R 4.5.2)
 pillar              1.11.1  2025-09-17 [1] CRAN (R 4.5.2)
 pkgcache            2.2.5   2026-04-09 [1] CRAN (R 4.5.2)
 pkgconfig           2.0.3   2019-09-22 [1] CRAN (R 4.5.2)
 processx            3.9.0   2026-04-22 [1] CRAN (R 4.5.2)
 ps                  1.9.3   2026-04-20 [1] CRAN (R 4.5.2)
 purrr               1.2.2   2026-04-10 [1] CRAN (R 4.5.2)
 R6                  2.6.1   2025-02-15 [1] CRAN (R 4.5.2)
 random.cdisc.data   0.3.16  2024-10-10 [1] CRAN (R 4.5.2)
 rbibutils           2.4.1   2026-01-21 [1] CRAN (R 4.5.2)
 RColorBrewer        1.1-3   2022-04-03 [1] CRAN (R 4.5.2)
 Rdpack              2.6.6   2026-02-08 [1] CRAN (R 4.5.2)
 rlang               1.2.0   2026-04-06 [1] CRAN (R 4.5.2)
 rmarkdown           2.31    2026-03-26 [1] CRAN (R 4.5.2)
 rtables           * 0.6.16  2026-04-22 [1] CRAN (R 4.5.2)
 S7                  0.2.2   2026-04-22 [1] CRAN (R 4.5.2)
 scales              1.4.0   2025-04-24 [1] CRAN (R 4.5.2)
 sessioninfo         1.2.4   2026-06-04 [1] CRAN (R 4.5.2)
 stringi             1.8.7   2025-03-27 [1] CRAN (R 4.5.2)
 stringr             1.6.0   2025-11-04 [1] CRAN (R 4.5.2)
 survival            3.8-6   2026-01-16 [2] CRAN (R 4.5.2)
 tern              * 0.9.10  2025-12-18 [1] CRAN (R 4.5.2)
 testthat            3.3.2   2026-01-11 [1] CRAN (R 4.5.2)
 tibble              3.3.1   2026-01-11 [1] CRAN (R 4.5.2)
 tidyr               1.3.2   2025-12-19 [1] CRAN (R 4.5.2)
 tidyselect          1.2.1   2024-03-11 [1] CRAN (R 4.5.2)
 vctrs               0.7.3   2026-04-11 [1] CRAN (R 4.5.2)
 withr               3.0.2   2024-10-28 [1] CRAN (R 4.5.2)
 xfun                0.58    2026-06-01 [1] CRAN (R 4.5.2)
 yaml                2.3.12  2025-12-10 [1] CRAN (R 4.5.2)

 [1] /usr/local/lib/R/site-library
 [2] /usr/local/lib/R/library
 [3] /github/home/R/x86_64-pc-linux-gnu-library/4.5
 * ── Packages attached to the search path.

──────────────────────────────────────────────────────────────────────────────

.lock file

Download the .lock file and use renv::restore() on it to recreate environment used to generate this website.

Download

DISCLOSUREST01
EUDRAT02
Source Code
---
title: EUDRAT01
subtitle: Non-Serious Adverse Events Reported in $\geq$ 5% of Patients in Any Treatment Group -- Patients and Events
---

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

{{< include ../../_utils/envir_hook.qmd >}}

```{r setup, echo = FALSE, warning = FALSE, message = FALSE}
library(tern)
library(dplyr)

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

# Ensure character variables are converted to factors and empty strings and NAs are explicit missing levels.
adsl <- df_explicit_na(adsl)
adae <- df_explicit_na(adae)

adae_nonser <- adae %>% filter(AESER != "Y", SAFFL == "Y")

get_adae_trimmed <- function(adsl, adae, cutoff_rate) {
  n_per_arm <- adsl %>%
    dplyr::count(ARM)

  anl_terms <- adae %>%
    dplyr::group_by(ARM, AEBODSYS, AEDECOD) %>%
    dplyr::count(
      unique_terms = n_distinct(USUBJID)
    ) %>%
    dplyr::select(-n) %>%
    dplyr::ungroup()

  anl_terms <- dplyr::left_join(
    anl_terms,
    n_per_arm,
    by = "ARM"
  ) %>%
    dplyr::mutate(
      ae_rate = unique_terms / n
    ) %>%
    dplyr::filter(ae_rate >= cutoff_rate) %>%
    dplyr::select(AEDECOD) %>%
    unique()

  anl <- dplyr::left_join(
    anl_terms,
    adae,
    by = "AEDECOD"
  )
  anl
}

adae_trim <- get_adae_trimmed(adsl, adae_nonser, cutoff_rate = 0.05)
```

```{r include = FALSE}
webr_code_labels <- c("setup")
```

{{< include ../../_utils/webr_no_include.qmd >}}

## Output

:::: panel-tabset
## Standard Table

::: {.panel-tabset .nav-justified group="webr"}
## {{< fa regular file-lines sm fw >}} Preview

```{r variant1, test = list(result_v1 = "result")}
# Define the split function
split_fun <- drop_split_levels

lyt <- basic_table() %>%
  split_cols_by("ARM") %>%
  summarize_patients_events_in_cols(
    custom_label = "Total number of patients with at least one non-serious adverse event occuring at a relative frequency of >=5% and number of events" # nolint: line_length.
  ) %>%
  split_rows_by("AEBODSYS",
    nested = FALSE,
    split_fun = split_fun,
    indent_mod = -1L,
    label_pos = "topleft",
    split_label = obj_label(adae_trim$AEBODSYS)
  ) %>%
  split_rows_by("AEDECOD", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adae_trim$AEDECOD)) %>%
  summarize_patients_events_in_cols(
    col_split = FALSE
  )

result <- build_table(lyt, adae_trim)
result
```

```{r include = FALSE}
webr_code_labels <- c("variant1")
```

{{< include ../../_utils/webr.qmd >}}
:::

## Data Setup

Define a trimming function `get_adae_trimmed` to filter for AEs of greater than 5% incidence rate.

```{r setup}
#| code-fold: show
```
::::

{{< include ../../_utils/save_results.qmd >}}

{{< include ../../repro.qmd >}}

Made with ❤️ by the NEST Team

  • Edit this page
  • Report an issue
Cookie Preferences