TLG Catalog - Stable
  • Stable
    • Dev
  1. Tables
  2. Adverse Events
  3. AET04
  • 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
  • teal App
  • Reproducibility
    • Timestamp
    • Session Info
    • .lock file
  • Edit this page
  • Report an issue
  1. Tables
  2. Adverse Events
  3. AET04

AET04

Adverse Events by Highest NCI CTCAE Grade


Output

  • Standard Table
  • Table with Fill-In
    of Treatment Groups
  • Table with Fill-In
    of Grades
  • Table with Collapsing
    of Grades
  • Table Using Worst Grade
    Flags from ADAE
  • Table with an Incidence Rate
    \(\geq\) 40%, Totals Restricted
  • Table with an Incidence Rate
    \(\geq\) X%, Totals Unrestricted
  • Table with an Incidence
    Rate \(\geq\) 58 Patients
  • Table with a Difference in
    Incidence Rate \(\geq\) 10%
  • Table with an Incidence Rate
    \(\geq\) 5%, SOCs < 5% Removed
  • Table with an Incidence Rate \(\geq\) 40%,
    All SOCs w/o Preferred Terms Removed
  • Data Setup
  • Preview
  • Try this using WebR
Code
lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ACTARM") %>%
  split_rows_by(
    var = "TOTAL_VAR",
    label_pos = "hidden",
    child_labels = "visible",
    indent_mod = -1L
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 7L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 6L
  ) %>%
  split_rows_by(
    "AEBODSYS",
    child_labels = "visible",
    nested = FALSE,
    split_fun = drop_split_levels,
    split_label = var_labels(adae)[["AEBODSYS"]],
    label_pos = "topleft"
  ) %>%
  split_rows_by(
    "AEDECOD",
    child_labels = "visible",
    split_fun = add_overall_level("- Overall -", trim = TRUE),
    split_label = var_labels(adae)[["AEDECOD"]],
    label_pos = "topleft"
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 6L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 5L
  ) %>%
  append_topleft("                            Grade")

result <- lyt %>%
  build_table(adae, alt_counts_df = adsl) %>%
  prune_table() %>%
  sort_at_path(
    path = "AEBODSYS",
    scorefun = score_all_sum,
    decreasing = TRUE
  ) %>%
  sort_at_path(
    path = c("AEBODSYS", "*", "AEDECOD"),
    scorefun = score_all_sum,
    decreasing = TRUE
  )

result
MedDRA System Organ Class                                                            
  MedDRA Preferred Term                      A: Drug X    B: Placebo   C: Combination
                            Grade             (N=134)      (N=134)        (N=132)    
—————————————————————————————————————————————————————————————————————————————————————
- Any adverse events -                                                               
                            - Any Grade -   100 (74.6%)   98 (73.1%)    103 (78.0%)  
                            Grade 1-2        10 (7.5%)    15 (11.2%)     10 (7.6%)   
                            1                5 (3.7%)      7 (5.2%)       4 (3.0%)   
                            2                5 (3.7%)      8 (6.0%)       6 (4.5%)   
                            Grade 3-4       26 (19.4%)    31 (23.1%)     29 (22.0%)  
                            3                13 (9.7%)    13 (9.7%)      14 (10.6%)  
                            4                13 (9.7%)    18 (13.4%)     15 (11.4%)  
                            Grade 5         64 (47.8%)    52 (38.8%)     64 (48.5%)  
cl A.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            Grade 1-2       68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            1               27 (20.1%)    19 (14.2%)     34 (25.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
  dcd A.1.1.1.1                                                                      
                            - Any Grade -   45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            Grade 1-2       45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            1               45 (33.6%)    31 (23.1%)     52 (39.4%)  
  dcd A.1.1.1.2                                                                      
                            - Any Grade -   41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            Grade 1-2       41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
cl B.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   62 (46.3%)    56 (41.8%)     74 (56.1%)  
                            Grade 1-2       23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            1               23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            Grade 3-4       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
  dcd B.2.2.3.1                                                                      
                            - Any Grade -   38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            Grade 1-2       38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            1               38 (28.4%)    40 (29.9%)     45 (34.1%)  
  dcd B.2.1.2.1                                                                      
                            - Any Grade -   39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            Grade 3-4       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
cl D.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   64 (47.8%)    54 (40.3%)     68 (51.5%)  
                            Grade 3-4       22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            3               22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            Grade 5         42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.1.1                                                                      
                            - Any Grade -   42 (31.3%)    32 (23.9%)     46 (34.8%)  
                            Grade 5         42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.4.2                                                                      
                            - Any Grade -   38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            Grade 3-4       38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            3               38 (28.4%)    34 (25.4%)     40 (30.3%)  
cl D.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
  dcd D.2.1.5.3                                                                      
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
cl C.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
  dcd C.2.1.2.1                                                                      
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
cl B.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 5         38 (28.4%)    37 (27.6%)     36 (27.3%)  
  dcd B.1.1.1.1                                                                      
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 5         38 (28.4%)    37 (27.6%)     36 (27.3%)  
cl C.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 3-4       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
  dcd C.1.1.1.3                                                                      
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 3-4       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
Experimental 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.

  • Preview
  • Try this using WebR
Code
adae2 <- adae %>% filter(ACTARM == "A: Drug X")

lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ACTARM") %>%
  split_rows_by(
    var = "TOTAL_VAR",
    label_pos = "hidden",
    child_labels = "visible",
    indent_mod = -1L
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 7L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 6L
  ) %>%
  split_rows_by(
    "AEBODSYS",
    child_labels = "visible",
    nested = FALSE,
    split_fun = drop_split_levels,
    split_label = var_labels(adae)[["AEBODSYS"]],
    label_pos = "topleft"
  ) %>%
  split_rows_by(
    "AEDECOD",
    child_labels = "visible",
    split_fun = add_overall_level("- Overall -", trim = TRUE),
    split_label = var_labels(adae)[["AEDECOD"]],
    label_pos = "topleft"
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 6L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 5L
  ) %>%
  append_topleft("                            Grade")

result <- lyt %>%
  build_table(adae2, alt_counts_df = adsl) %>%
  prune_table() %>%
  sort_at_path(
    path = "AEBODSYS",
    scorefun = score_all_sum,
    decreasing = TRUE
  ) %>%
  sort_at_path(
    path = c("AEBODSYS", "*", "AEDECOD"),
    scorefun = score_all_sum,
    decreasing = TRUE
  )

result
MedDRA System Organ Class                                                            
  MedDRA Preferred Term                      A: Drug X    B: Placebo   C: Combination
                            Grade             (N=134)      (N=134)        (N=132)    
—————————————————————————————————————————————————————————————————————————————————————
- Any adverse events -                                                               
                            - Any Grade -   100 (74.6%)       0              0       
                            Grade 1-2        10 (7.5%)        0              0       
                            1                5 (3.7%)         0              0       
                            2                5 (3.7%)         0              0       
                            Grade 3-4       26 (19.4%)        0              0       
                            3                13 (9.7%)        0              0       
                            4                13 (9.7%)        0              0       
                            Grade 5         64 (47.8%)        0              0       
cl A.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   68 (50.7%)        0              0       
                            Grade 1-2       68 (50.7%)        0              0       
                            1               27 (20.1%)        0              0       
                            2               41 (30.6%)        0              0       
  dcd A.1.1.1.1                                                                      
                            - Any Grade -   45 (33.6%)        0              0       
                            Grade 1-2       45 (33.6%)        0              0       
                            1               45 (33.6%)        0              0       
  dcd A.1.1.1.2                                                                      
                            - Any Grade -   41 (30.6%)        0              0       
                            Grade 1-2       41 (30.6%)        0              0       
                            2               41 (30.6%)        0              0       
cl D.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   64 (47.8%)        0              0       
                            Grade 3-4       22 (16.4%)        0              0       
                            3               22 (16.4%)        0              0       
                            Grade 5         42 (31.3%)        0              0       
  dcd D.1.1.1.1                                                                      
                            - Any Grade -   42 (31.3%)        0              0       
                            Grade 5         42 (31.3%)        0              0       
  dcd D.1.1.4.2                                                                      
                            - Any Grade -   38 (28.4%)        0              0       
                            Grade 3-4       38 (28.4%)        0              0       
                            3               38 (28.4%)        0              0       
cl B.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   62 (46.3%)        0              0       
                            Grade 1-2       23 (17.2%)        0              0       
                            1               23 (17.2%)        0              0       
                            Grade 3-4       39 (29.1%)        0              0       
                            3               39 (29.1%)        0              0       
  dcd B.2.1.2.1                                                                      
                            - Any Grade -   39 (29.1%)        0              0       
                            Grade 3-4       39 (29.1%)        0              0       
                            3               39 (29.1%)        0              0       
  dcd B.2.2.3.1                                                                      
                            - Any Grade -   38 (28.4%)        0              0       
                            Grade 1-2       38 (28.4%)        0              0       
                            1               38 (28.4%)        0              0       
cl B.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   38 (28.4%)        0              0       
                            Grade 5         38 (28.4%)        0              0       
  dcd B.1.1.1.1                                                                      
                            - Any Grade -   38 (28.4%)        0              0       
                            Grade 5         38 (28.4%)        0              0       
cl D.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   37 (27.6%)        0              0       
                            Grade 1-2       37 (27.6%)        0              0       
                            1               37 (27.6%)        0              0       
  dcd D.2.1.5.3                                                                      
                            - Any Grade -   37 (27.6%)        0              0       
                            Grade 1-2       37 (27.6%)        0              0       
                            1               37 (27.6%)        0              0       
cl C.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   36 (26.9%)        0              0       
                            Grade 3-4       36 (26.9%)        0              0       
                            4               36 (26.9%)        0              0       
  dcd C.1.1.1.3                                                                      
                            - Any Grade -   36 (26.9%)        0              0       
                            Grade 3-4       36 (26.9%)        0              0       
                            4               36 (26.9%)        0              0       
cl C.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   28 (20.9%)        0              0       
                            Grade 1-2       28 (20.9%)        0              0       
                            2               28 (20.9%)        0              0       
  dcd C.2.1.2.1                                                                      
                            - Any Grade -   28 (20.9%)        0              0       
                            Grade 1-2       28 (20.9%)        0              0       
                            2               28 (20.9%)        0              0       
Experimental 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.

  • Preview
  • Try this using WebR
Code
lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ACTARM") %>%
  split_rows_by(
    var = "TOTAL_VAR",
    label_pos = "hidden",
    child_labels = "visible",
    indent_mod = -1L
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 7L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 6L
  ) %>%
  split_rows_by(
    "AEBODSYS",
    child_labels = "visible",
    nested = FALSE,
    split_fun = drop_split_levels,
    split_label = var_labels(adae)[["AEBODSYS"]],
    label_pos = "topleft"
  ) %>%
  split_rows_by(
    "AEDECOD",
    child_labels = "visible",
    split_fun = add_overall_level("- Overall -", trim = TRUE),
    split_label = var_labels(adae)[["AEDECOD"]],
    label_pos = "topleft"
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 6L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 5L
  ) %>%
  append_topleft("                            Grade")

result <- lyt %>%
  build_table(adae, alt_counts_df = adsl) %>%
  sort_at_path(
    path = "AEBODSYS",
    scorefun = score_all_sum,
    decreasing = TRUE
  ) %>%
  sort_at_path(
    path = c("AEBODSYS", "*", "AEDECOD"),
    scorefun = score_all_sum,
    decreasing = TRUE
  )

result
MedDRA System Organ Class                                                            
  MedDRA Preferred Term                      A: Drug X    B: Placebo   C: Combination
                            Grade             (N=134)      (N=134)        (N=132)    
—————————————————————————————————————————————————————————————————————————————————————
- Any adverse events -                                                               
                            - Any Grade -   100 (74.6%)   98 (73.1%)    103 (78.0%)  
                            Grade 1-2        10 (7.5%)    15 (11.2%)     10 (7.6%)   
                            1                5 (3.7%)      7 (5.2%)       4 (3.0%)   
                            2                5 (3.7%)      8 (6.0%)       6 (4.5%)   
                            Grade 3-4       26 (19.4%)    31 (23.1%)     29 (22.0%)  
                            3                13 (9.7%)    13 (9.7%)      14 (10.6%)  
                            4                13 (9.7%)    18 (13.4%)     15 (11.4%)  
                            Grade 5         64 (47.8%)    52 (38.8%)     64 (48.5%)  
cl A.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            Grade 1-2       68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            1               27 (20.1%)    19 (14.2%)     34 (25.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            Grade 3-4            0            0              0       
                            3                    0            0              0       
                            4                    0            0              0       
                            Grade 5              0            0              0       
  dcd A.1.1.1.1                                                                      
                            - Any Grade -   45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            Grade 1-2       45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            1               45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            2                    0            0              0       
                            Grade 3-4            0            0              0       
                            3                    0            0              0       
                            4                    0            0              0       
                            Grade 5              0            0              0       
  dcd A.1.1.1.2                                                                      
                            - Any Grade -   41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            Grade 1-2       41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            1                    0            0              0       
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            Grade 3-4            0            0              0       
                            3                    0            0              0       
                            4                    0            0              0       
                            Grade 5              0            0              0       
cl B.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   62 (46.3%)    56 (41.8%)     74 (56.1%)  
                            Grade 1-2       23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            1               23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            2                    0            0              0       
                            Grade 3-4       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            4                    0            0              0       
                            Grade 5              0            0              0       
  dcd B.2.2.3.1                                                                      
                            - Any Grade -   38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            Grade 1-2       38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            1               38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            2                    0            0              0       
                            Grade 3-4            0            0              0       
                            3                    0            0              0       
                            4                    0            0              0       
                            Grade 5              0            0              0       
  dcd B.2.1.2.1                                                                      
                            - Any Grade -   39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            Grade 1-2            0            0              0       
                            1                    0            0              0       
                            2                    0            0              0       
                            Grade 3-4       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            4                    0            0              0       
                            Grade 5              0            0              0       
cl D.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   64 (47.8%)    54 (40.3%)     68 (51.5%)  
                            Grade 1-2            0            0              0       
                            1                    0            0              0       
                            2                    0            0              0       
                            Grade 3-4       22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            3               22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            4                    0            0              0       
                            Grade 5         42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.1.1                                                                      
                            - Any Grade -   42 (31.3%)    32 (23.9%)     46 (34.8%)  
                            Grade 1-2            0            0              0       
                            1                    0            0              0       
                            2                    0            0              0       
                            Grade 3-4            0            0              0       
                            3                    0            0              0       
                            4                    0            0              0       
                            Grade 5         42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.4.2                                                                      
                            - Any Grade -   38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            Grade 1-2            0            0              0       
                            1                    0            0              0       
                            2                    0            0              0       
                            Grade 3-4       38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            3               38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            4                    0            0              0       
                            Grade 5              0            0              0       
cl D.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            2                    0            0              0       
                            Grade 3-4            0            0              0       
                            3                    0            0              0       
                            4                    0            0              0       
                            Grade 5              0            0              0       
  dcd D.2.1.5.3                                                                      
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            2                    0            0              0       
                            Grade 3-4            0            0              0       
                            3                    0            0              0       
                            4                    0            0              0       
                            Grade 5              0            0              0       
cl C.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            1                    0            0              0       
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 3-4            0            0              0       
                            3                    0            0              0       
                            4                    0            0              0       
                            Grade 5              0            0              0       
  dcd C.2.1.2.1                                                                      
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            1                    0            0              0       
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 3-4            0            0              0       
                            3                    0            0              0       
                            4                    0            0              0       
                            Grade 5              0            0              0       
cl B.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 1-2            0            0              0       
                            1                    0            0              0       
                            2                    0            0              0       
                            Grade 3-4            0            0              0       
                            3                    0            0              0       
                            4                    0            0              0       
                            Grade 5         38 (28.4%)    37 (27.6%)     36 (27.3%)  
  dcd B.1.1.1.1                                                                      
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 1-2            0            0              0       
                            1                    0            0              0       
                            2                    0            0              0       
                            Grade 3-4            0            0              0       
                            3                    0            0              0       
                            4                    0            0              0       
                            Grade 5         38 (28.4%)    37 (27.6%)     36 (27.3%)  
cl C.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 1-2            0            0              0       
                            1                    0            0              0       
                            2                    0            0              0       
                            Grade 3-4       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            3                    0            0              0       
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 5              0            0              0       
  dcd C.1.1.1.3                                                                      
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 1-2            0            0              0       
                            1                    0            0              0       
                            2                    0            0              0       
                            Grade 3-4       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            3                    0            0              0       
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 5              0            0              0       
Experimental 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.

  • Preview
  • Try this using WebR
Code
grade_groups_1 <- list(
  "Grade 1-2" = c("1", "2"),
  "Grade 3-5" = c("3", "4", "5")
)

lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ACTARM") %>%
  split_rows_by(
    var = "TOTAL_VAR",
    label_pos = "hidden",
    child_labels = "visible",
    indent_mod = -1L
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 7L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups_1,
    .indent_mods = 6L
  ) %>%
  split_rows_by(
    "AEBODSYS",
    child_labels = "visible",
    nested = FALSE,
    split_fun = drop_split_levels,
    split_label = var_labels(adae)[["AEBODSYS"]],
    label_pos = "topleft"
  ) %>%
  split_rows_by(
    "AEDECOD",
    child_labels = "visible",
    split_fun = add_overall_level("- Overall -", trim = TRUE),
    split_label = var_labels(adae)[["AEDECOD"]],
    label_pos = "topleft"
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 6L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups_1,
    .indent_mods = 5L
  ) %>%
  append_topleft("                            Grade")

result <- lyt %>%
  build_table(adae, alt_counts_df = adsl) %>%
  prune_table() %>%
  sort_at_path(
    path = "AEBODSYS",
    scorefun = score_all_sum,
    decreasing = TRUE
  ) %>%
  sort_at_path(
    path = c("AEBODSYS", "*", "AEDECOD"),
    scorefun = score_all_sum,
    decreasing = TRUE
  )

result
MedDRA System Organ Class                                                            
  MedDRA Preferred Term                      A: Drug X    B: Placebo   C: Combination
                            Grade             (N=134)      (N=134)        (N=132)    
—————————————————————————————————————————————————————————————————————————————————————
- Any adverse events -                                                               
                            - Any Grade -   100 (74.6%)   98 (73.1%)    103 (78.0%)  
                            Grade 1-2        10 (7.5%)    15 (11.2%)     10 (7.6%)   
                            1                5 (3.7%)      7 (5.2%)       4 (3.0%)   
                            2                5 (3.7%)      8 (6.0%)       6 (4.5%)   
                            Grade 3-5       90 (67.2%)    83 (61.9%)     93 (70.5%)  
                            3                13 (9.7%)    13 (9.7%)      14 (10.6%)  
                            4                13 (9.7%)    18 (13.4%)     15 (11.4%)  
                            5               64 (47.8%)    52 (38.8%)     64 (48.5%)  
cl A.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            Grade 1-2       68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            1               27 (20.1%)    19 (14.2%)     34 (25.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
  dcd A.1.1.1.1                                                                      
                            - Any Grade -   45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            Grade 1-2       45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            1               45 (33.6%)    31 (23.1%)     52 (39.4%)  
  dcd A.1.1.1.2                                                                      
                            - Any Grade -   41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            Grade 1-2       41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
cl B.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   62 (46.3%)    56 (41.8%)     74 (56.1%)  
                            Grade 1-2       23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            1               23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            Grade 3-5       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
  dcd B.2.2.3.1                                                                      
                            - Any Grade -   38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            Grade 1-2       38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            1               38 (28.4%)    40 (29.9%)     45 (34.1%)  
  dcd B.2.1.2.1                                                                      
                            - Any Grade -   39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            Grade 3-5       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
cl D.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   64 (47.8%)    54 (40.3%)     68 (51.5%)  
                            Grade 3-5       64 (47.8%)    54 (40.3%)     68 (51.5%)  
                            3               22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            5               42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.1.1                                                                      
                            - Any Grade -   42 (31.3%)    32 (23.9%)     46 (34.8%)  
                            Grade 3-5       42 (31.3%)    32 (23.9%)     46 (34.8%)  
                            5               42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.4.2                                                                      
                            - Any Grade -   38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            Grade 3-5       38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            3               38 (28.4%)    34 (25.4%)     40 (30.3%)  
cl D.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
  dcd D.2.1.5.3                                                                      
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
cl C.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
  dcd C.2.1.2.1                                                                      
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
cl B.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 3-5       38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            5               38 (28.4%)    37 (27.6%)     36 (27.3%)  
  dcd B.1.1.1.1                                                                      
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 3-5       38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            5               38 (28.4%)    37 (27.6%)     36 (27.3%)  
cl C.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 3-5       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
  dcd C.1.1.1.3                                                                      
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 3-5       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
Experimental 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.

Code
# No Worst Grade Flags found in the ADAE data set.
  • Preview
  • Try this using WebR
Code
# Simple wrapper to return subset ADAE to a threshold of xx%.
get_adae_trimmed <- function(adsl, adae, cutoff_rate) {
  n_per_arm <- adsl %>%
    dplyr::count(ACTARM)

  anl_terms <- adae %>%
    dplyr::group_by(ACTARM, 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 = "ACTARM"
  ) %>%
    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
}

adae6 <- get_adae_trimmed(adsl, adae, cutoff_rate = 0.4)

lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ACTARM") %>%
  split_rows_by(
    var = "TOTAL_VAR",
    label_pos = "hidden",
    child_labels = "visible",
    indent_mod = -1L
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 7L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 6L
  ) %>%
  split_rows_by(
    "AEBODSYS",
    child_labels = "visible",
    nested = FALSE,
    split_fun = drop_split_levels,
    split_label = var_labels(adae)[["AEBODSYS"]],
    label_pos = "topleft"
  ) %>%
  split_rows_by(
    "AEDECOD",
    child_labels = "visible",
    split_fun = add_overall_level("- Overall -", trim = TRUE),
    split_label = var_labels(adae)[["AEDECOD"]],
    label_pos = "topleft"
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 6L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 5L
  ) %>%
  append_topleft("                            Grade")

result <- lyt %>%
  build_table(adae6, alt_counts_df = adsl) %>%
  prune_table() %>%
  sort_at_path(
    path = "AEBODSYS",
    scorefun = score_all_sum,
    decreasing = TRUE
  ) %>%
  sort_at_path(
    path = c("AEBODSYS", "*", "AEDECOD"),
    scorefun = score_all_sum,
    decreasing = TRUE
  )

result
MedDRA System Organ Class                                                            
  MedDRA Preferred Term                      A: Drug X    B: Placebo   C: Combination
                            Grade             (N=134)      (N=134)        (N=132)    
—————————————————————————————————————————————————————————————————————————————————————
- Any adverse events -                                                               
                            - Any Grade -   100 (74.6%)   98 (73.1%)    103 (78.0%)  
                            Grade 1-2        10 (7.5%)    15 (11.2%)     10 (7.6%)   
                            1                5 (3.7%)      7 (5.2%)       4 (3.0%)   
                            2                5 (3.7%)      8 (6.0%)       6 (4.5%)   
                            Grade 3-4       26 (19.4%)    31 (23.1%)     29 (22.0%)  
                            3                13 (9.7%)    13 (9.7%)      14 (10.6%)  
                            4                13 (9.7%)    18 (13.4%)     15 (11.4%)  
                            Grade 5         64 (47.8%)    52 (38.8%)     64 (48.5%)  
cl A.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            Grade 1-2       68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            1               27 (20.1%)    19 (14.2%)     34 (25.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
  dcd A.1.1.1.1                                                                      
                            - Any Grade -   45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            Grade 1-2       45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            1               45 (33.6%)    31 (23.1%)     52 (39.4%)  
  dcd A.1.1.1.2                                                                      
                            - Any Grade -   41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            Grade 1-2       41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
cl B.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   62 (46.3%)    56 (41.8%)     74 (56.1%)  
                            Grade 1-2       23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            1               23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            Grade 3-4       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
  dcd B.2.2.3.1                                                                      
                            - Any Grade -   38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            Grade 1-2       38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            1               38 (28.4%)    40 (29.9%)     45 (34.1%)  
  dcd B.2.1.2.1                                                                      
                            - Any Grade -   39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            Grade 3-4       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
cl D.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   64 (47.8%)    54 (40.3%)     68 (51.5%)  
                            Grade 3-4       22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            3               22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            Grade 5         42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.1.1                                                                      
                            - Any Grade -   42 (31.3%)    32 (23.9%)     46 (34.8%)  
                            Grade 5         42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.4.2                                                                      
                            - Any Grade -   38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            Grade 3-4       38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            3               38 (28.4%)    34 (25.4%)     40 (30.3%)  
cl D.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
  dcd D.2.1.5.3                                                                      
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
cl C.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
  dcd C.2.1.2.1                                                                      
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
cl B.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 5         38 (28.4%)    37 (27.6%)     36 (27.3%)  
  dcd B.1.1.1.1                                                                      
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 5         38 (28.4%)    37 (27.6%)     36 (27.3%)  
cl C.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 3-4       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
  dcd C.1.1.1.3                                                                      
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 3-4       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
Experimental 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.

Variant 7 was not created. With this variant, the SOC level is not trimmed (even if there are no terms left).

  • Preview
  • Try this using WebR
Code
cutoff <- 58L
row_condition <- has_count_in_any_col(atleast = cutoff, col_names = levels(adsl$ACTARM))

result <- prune_table(raw_table, keep_content_rows(my_row_condition(row_condition)))

result
MedDRA System Organ Class                                                            
  MedDRA Preferred Term                      A: Drug X    B: Placebo   C: Combination
                            Grade             (N=134)      (N=134)        (N=132)    
—————————————————————————————————————————————————————————————————————————————————————
- Any adverse events -                                                               
                            - Any Grade -   100 (74.6%)   98 (73.1%)    103 (78.0%)  
                            Grade 1-2        10 (7.5%)    15 (11.2%)     10 (7.6%)   
                            1                5 (3.7%)      7 (5.2%)       4 (3.0%)   
                            2                5 (3.7%)      8 (6.0%)       6 (4.5%)   
                            Grade 3-4       26 (19.4%)    31 (23.1%)     29 (22.0%)  
                            3                13 (9.7%)    13 (9.7%)      14 (10.6%)  
                            4                13 (9.7%)    18 (13.4%)     15 (11.4%)  
                            Grade 5         64 (47.8%)    52 (38.8%)     64 (48.5%)  
cl A.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            Grade 1-2       68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            1               27 (20.1%)    19 (14.2%)     34 (25.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
  dcd A.1.1.1.1                                                                      
                            - Any Grade -   45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            Grade 1-2       45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            1               45 (33.6%)    31 (23.1%)     52 (39.4%)  
  dcd A.1.1.1.2                                                                      
                            - Any Grade -   41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            Grade 1-2       41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
cl B.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   62 (46.3%)    56 (41.8%)     74 (56.1%)  
                            Grade 1-2       23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            1               23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            Grade 3-4       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
  dcd B.2.2.3.1                                                                      
                            - Any Grade -   38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            Grade 1-2       38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            1               38 (28.4%)    40 (29.9%)     45 (34.1%)  
  dcd B.2.1.2.1                                                                      
                            - Any Grade -   39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            Grade 3-4       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
cl D.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   64 (47.8%)    54 (40.3%)     68 (51.5%)  
                            Grade 3-4       22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            3               22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            Grade 5         42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.1.1                                                                      
                            - Any Grade -   42 (31.3%)    32 (23.9%)     46 (34.8%)  
                            Grade 5         42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.4.2                                                                      
                            - Any Grade -   38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            Grade 3-4       38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            3               38 (28.4%)    34 (25.4%)     40 (30.3%)  
cl D.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
  dcd D.2.1.5.3                                                                      
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
cl C.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
  dcd C.2.1.2.1                                                                      
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
cl B.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 5         38 (28.4%)    37 (27.6%)     36 (27.3%)  
  dcd B.1.1.1.1                                                                      
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 5         38 (28.4%)    37 (27.6%)     36 (27.3%)  
cl C.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 3-4       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
  dcd C.1.1.1.3                                                                      
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 3-4       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
Experimental 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.

  • Preview
  • Try this using WebR
Code
cutoff <- 0.1
row_condition <- has_fractions_difference(atleast = cutoff, col_names = levels(adsl$ACTARM))

result <- prune_table(raw_table, keep_content_rows(my_row_condition(row_condition)))

result
MedDRA System Organ Class                                                            
  MedDRA Preferred Term                      A: Drug X    B: Placebo   C: Combination
                            Grade             (N=134)      (N=134)        (N=132)    
—————————————————————————————————————————————————————————————————————————————————————
- Any adverse events -                                                               
                            - Any Grade -   100 (74.6%)   98 (73.1%)    103 (78.0%)  
                            Grade 1-2        10 (7.5%)    15 (11.2%)     10 (7.6%)   
                            1                5 (3.7%)      7 (5.2%)       4 (3.0%)   
                            2                5 (3.7%)      8 (6.0%)       6 (4.5%)   
                            Grade 3-4       26 (19.4%)    31 (23.1%)     29 (22.0%)  
                            3                13 (9.7%)    13 (9.7%)      14 (10.6%)  
                            4                13 (9.7%)    18 (13.4%)     15 (11.4%)  
                            Grade 5         64 (47.8%)    52 (38.8%)     64 (48.5%)  
cl A.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            Grade 1-2       68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            1               27 (20.1%)    19 (14.2%)     34 (25.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
  dcd A.1.1.1.1                                                                      
                            - Any Grade -   45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            Grade 1-2       45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            1               45 (33.6%)    31 (23.1%)     52 (39.4%)  
  dcd A.1.1.1.2                                                                      
                            - Any Grade -   41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            Grade 1-2       41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
cl B.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   62 (46.3%)    56 (41.8%)     74 (56.1%)  
                            Grade 1-2       23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            1               23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            Grade 3-4       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
  dcd B.2.2.3.1                                                                      
                            - Any Grade -   38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            Grade 1-2       38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            1               38 (28.4%)    40 (29.9%)     45 (34.1%)  
  dcd B.2.1.2.1                                                                      
                            - Any Grade -   39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            Grade 3-4       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
cl D.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   64 (47.8%)    54 (40.3%)     68 (51.5%)  
                            Grade 3-4       22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            3               22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            Grade 5         42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.1.1                                                                      
                            - Any Grade -   42 (31.3%)    32 (23.9%)     46 (34.8%)  
                            Grade 5         42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.4.2                                                                      
                            - Any Grade -   38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            Grade 3-4       38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            3               38 (28.4%)    34 (25.4%)     40 (30.3%)  
cl D.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
  dcd D.2.1.5.3                                                                      
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
cl C.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
  dcd C.2.1.2.1                                                                      
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
cl B.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 5         38 (28.4%)    37 (27.6%)     36 (27.3%)  
  dcd B.1.1.1.1                                                                      
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 5         38 (28.4%)    37 (27.6%)     36 (27.3%)  
cl C.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 3-4       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
  dcd C.1.1.1.3                                                                      
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 3-4       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
Experimental 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.

Variant 10 was not done With this variant, SOC levels above the threshold are still in the table even if there are no terms left.

  • Preview
  • Try this using WebR
Code
cutoff <- 0.4
row_condition <- has_fraction_in_any_col(atleast = cutoff, col_names = levels(adsl$ACTARM))

result <- prune_table(raw_table, keep_content_rows(my_row_condition(row_condition)))

result
MedDRA System Organ Class                                                            
  MedDRA Preferred Term                      A: Drug X    B: Placebo   C: Combination
                            Grade             (N=134)      (N=134)        (N=132)    
—————————————————————————————————————————————————————————————————————————————————————
- Any adverse events -                                                               
                            - Any Grade -   100 (74.6%)   98 (73.1%)    103 (78.0%)  
                            Grade 1-2        10 (7.5%)    15 (11.2%)     10 (7.6%)   
                            1                5 (3.7%)      7 (5.2%)       4 (3.0%)   
                            2                5 (3.7%)      8 (6.0%)       6 (4.5%)   
                            Grade 3-4       26 (19.4%)    31 (23.1%)     29 (22.0%)  
                            3                13 (9.7%)    13 (9.7%)      14 (10.6%)  
                            4                13 (9.7%)    18 (13.4%)     15 (11.4%)  
                            Grade 5         64 (47.8%)    52 (38.8%)     64 (48.5%)  
cl A.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            Grade 1-2       68 (50.7%)    58 (43.3%)     76 (57.6%)  
                            1               27 (20.1%)    19 (14.2%)     34 (25.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
  dcd A.1.1.1.1                                                                      
                            - Any Grade -   45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            Grade 1-2       45 (33.6%)    31 (23.1%)     52 (39.4%)  
                            1               45 (33.6%)    31 (23.1%)     52 (39.4%)  
  dcd A.1.1.1.2                                                                      
                            - Any Grade -   41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            Grade 1-2       41 (30.6%)    39 (29.1%)     42 (31.8%)  
                            2               41 (30.6%)    39 (29.1%)     42 (31.8%)  
cl B.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   62 (46.3%)    56 (41.8%)     74 (56.1%)  
                            Grade 1-2       23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            1               23 (17.2%)    22 (16.4%)     28 (21.2%)  
                            Grade 3-4       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
  dcd B.2.2.3.1                                                                      
                            - Any Grade -   38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            Grade 1-2       38 (28.4%)    40 (29.9%)     45 (34.1%)  
                            1               38 (28.4%)    40 (29.9%)     45 (34.1%)  
  dcd B.2.1.2.1                                                                      
                            - Any Grade -   39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            Grade 3-4       39 (29.1%)    34 (25.4%)     46 (34.8%)  
                            3               39 (29.1%)    34 (25.4%)     46 (34.8%)  
cl D.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   64 (47.8%)    54 (40.3%)     68 (51.5%)  
                            Grade 3-4       22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            3               22 (16.4%)    22 (16.4%)     22 (16.7%)  
                            Grade 5         42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.1.1                                                                      
                            - Any Grade -   42 (31.3%)    32 (23.9%)     46 (34.8%)  
                            Grade 5         42 (31.3%)    32 (23.9%)     46 (34.8%)  
  dcd D.1.1.4.2                                                                      
                            - Any Grade -   38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            Grade 3-4       38 (28.4%)    34 (25.4%)     40 (30.3%)  
                            3               38 (28.4%)    34 (25.4%)     40 (30.3%)  
cl D.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
  dcd D.2.1.5.3                                                                      
                            - Any Grade -   37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            Grade 1-2       37 (27.6%)    46 (34.3%)     50 (37.9%)  
                            1               37 (27.6%)    46 (34.3%)     50 (37.9%)  
cl C.2                                                                               
  - Overall -                                                                        
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
  dcd C.2.1.2.1                                                                      
                            - Any Grade -   28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            Grade 1-2       28 (20.9%)    36 (26.9%)     48 (36.4%)  
                            2               28 (20.9%)    36 (26.9%)     48 (36.4%)  
cl B.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 5         38 (28.4%)    37 (27.6%)     36 (27.3%)  
  dcd B.1.1.1.1                                                                      
                            - Any Grade -   38 (28.4%)    37 (27.6%)     36 (27.3%)  
                            Grade 5         38 (28.4%)    37 (27.6%)     36 (27.3%)  
cl C.1                                                                               
  - Overall -                                                                        
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 3-4       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
  dcd C.1.1.1.3                                                                      
                            - Any Grade -   36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            Grade 3-4       36 (26.9%)    34 (25.4%)     36 (27.3%)  
                            4               36 (26.9%)    34 (25.4%)     36 (27.3%)  
Experimental 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.

Code
library(dplyr)
library(tern)

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) %>% filter(TRT01A != "<Missing>")
adae <- df_explicit_na(adae) %>%
  var_relabel(
    AEBODSYS = "MedDRA System Organ Class",
    AEDECOD = "MedDRA Preferred Term"
  ) %>%
  filter(
    ANL01FL == "Y",
    AETOXGR != "<Missing>"
  )

# Pre-Processing
grade_groups <- list(
  "Grade 1-2" = c("1", "2"),
  "Grade 3-4" = c("3", "4"),
  "Grade 5" = "5"
)
adae$TOTAL_VAR <- "- Any adverse events - "

# Helper function to avoid filtering also the first part of the table, where general information is given.
my_row_condition <- function(row_fnc_condition) {
  function(table_row) {
    if (indent_mod(table_row) == 0) {
      return(TRUE)
    } else {
      row_fnc_condition(table_row)
    }
  }
}

# Helper function to calculate sum from first nested row
score_all_sum <- function(tt) {
  cleaf <- collect_leaves(tt)[[1]]
  if (NROW(cleaf) == 0) {
    stop("score_all_sum score function used at subtable [", obj_name(tt), "] that has no content.")
  }
  sum(sapply(row_values(cleaf), function(cv) cv[1]))
}

# Raw table used by variant 8/10
raw_table <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ACTARM") %>%
  split_rows_by(
    var = "TOTAL_VAR",
    label_pos = "hidden",
    child_labels = "visible",
    indent_mod = -1L
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 7L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 6L
  ) %>%
  split_rows_by(
    "AEBODSYS",
    child_labels = "visible",
    nested = FALSE,
    split_fun = drop_split_levels,
    split_label = var_labels(adae)[["AEBODSYS"]],
    label_pos = "topleft"
  ) %>%
  split_rows_by(
    "AEDECOD",
    child_labels = "visible",
    split_fun = add_overall_level("- Overall -", trim = TRUE),
    split_label = var_labels(adae)[["AEDECOD"]],
    label_pos = "topleft"
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 6L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 5L
  ) %>%
  append_topleft("                            Grade") %>%
  build_table(adae, alt_counts_df = adsl) %>%
  prune_table() %>%
  sort_at_path(
    path = "AEBODSYS",
    scorefun = score_all_sum,
    decreasing = TRUE
  ) %>%
  sort_at_path(
    path = c("AEBODSYS", "*", "AEDECOD"),
    scorefun = score_all_sum,
    decreasing = TRUE
  )

teal App

  • Preview
  • Try this using shinylive
Code
library(teal.modules.clinical)

## Data reproducible code
data <- teal_data()
data <- within(data, {
  ADSL <- random.cdisc.data::cadsl
  ADAE <- random.cdisc.data::cadae
})
datanames <- c("ADSL", "ADAE")
datanames(data) <- datanames
Warning: `datanames<-()` was deprecated in teal.data 0.7.0.
ℹ invalid to use `datanames()<-` or `names()<-` on an object of class
  `teal_data`. See ?names.teal_data
Code
join_keys(data) <- default_cdisc_join_keys[datanames]

## Reusable Configuration For Modules
ADAE <- data[["ADAE"]]

## Setup App
app <- init(
  data = data,
  modules = modules(
    tm_t_events_by_grade(
      label = "Adverse Events by Grade Table",
      dataname = "ADAE",
      arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"),
      llt = choices_selected(
        choices = variable_choices(ADAE, c("AETERM", "AEDECOD")),
        selected = c("AEDECOD")
      ),
      hlt = choices_selected(
        choices = variable_choices(ADAE, c("AEBODSYS", "AESOC")),
        selected = "AEBODSYS"
      ),
      grade = choices_selected(
        choices = variable_choices(ADAE, c("AETOXGR", "AESEV")),
        selected = "AETOXGR"
      )
    )
  )
)

shinyApp(app$ui, app$server)

Experimental use!

shinylive allow you to modify to run shiny application entirely in the web browser. Modify the code below and click re-run the app to see the results. The performance is slighly worse and some of the features (e.g. downloading) might not work at all.

#| '!! shinylive warning !!': |
#|   shinylive does not work in self-contained HTML documents.
#|   Please set `embed-resources: false` in your metadata.
#| standalone: true
#| viewerHeight: 800
#| editorHeight: 200
#| components: [viewer, editor]
#| layout: vertical

# -- WEBR HELPERS --
options(webr_pkg_repos = c("r-universe" = "https://insightsengineering.r-universe.dev", getOption("webr_pkg_repos")))

# -- APP CODE --
library(teal.modules.clinical)

## Data reproducible code
data <- teal_data()
data <- within(data, {
  ADSL <- random.cdisc.data::cadsl
  ADAE <- random.cdisc.data::cadae
})
datanames <- c("ADSL", "ADAE")
datanames(data) <- datanames
join_keys(data) <- default_cdisc_join_keys[datanames]

## Reusable Configuration For Modules
ADAE <- data[["ADAE"]]

## Setup App
app <- init(
  data = data,
  modules = modules(
    tm_t_events_by_grade(
      label = "Adverse Events by Grade Table",
      dataname = "ADAE",
      arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"),
      llt = choices_selected(
        choices = variable_choices(ADAE, c("AETERM", "AEDECOD")),
        selected = c("AEDECOD")
      ),
      hlt = choices_selected(
        choices = variable_choices(ADAE, c("AEBODSYS", "AESOC")),
        selected = "AEBODSYS"
      ),
      grade = choices_selected(
        choices = variable_choices(ADAE, c("AETOXGR", "AESEV")),
        selected = "AETOXGR"
      )
    )
  )
)

shinyApp(app$ui, app$server)

Reproducibility

Timestamp

[1] "2025-07-05 17:55:03 UTC"

Session Info

─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.5.0 (2025-04-11)
 os       Ubuntu 24.04.2 LTS
 system   x86_64, linux-gnu
 ui       X11
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       Etc/UTC
 date     2025-07-05
 pandoc   3.7.0.2 @ /usr/bin/ (via rmarkdown)
 quarto   1.7.32 @ /usr/local/bin/quarto

─ Packages ───────────────────────────────────────────────────────────────────
 package               * version  date (UTC) lib source
 backports               1.5.0    2024-05-23 [1] RSPM
 brio                    1.1.5    2024-04-24 [1] RSPM
 broom                   1.0.8    2025-03-28 [1] RSPM
 bslib                   0.9.0    2025-01-30 [1] RSPM
 cachem                  1.1.0    2024-05-16 [1] RSPM
 callr                   3.7.6    2024-03-25 [1] RSPM
 checkmate               2.3.2    2024-07-29 [1] RSPM
 chromote                0.5.1    2025-04-24 [1] RSPM
 cli                     3.6.5    2025-04-23 [1] RSPM
 coda                    0.19-4.1 2024-01-31 [1] CRAN (R 4.5.0)
 codetools               0.2-20   2024-03-31 [2] CRAN (R 4.5.0)
 curl                    6.4.0    2025-06-22 [1] RSPM
 dichromat               2.0-0.1  2022-05-02 [1] CRAN (R 4.5.0)
 digest                  0.6.37   2024-08-19 [1] RSPM
 dplyr                 * 1.1.4    2023-11-17 [1] RSPM
 emmeans                 1.11.1   2025-05-04 [1] RSPM
 estimability            1.5.1    2024-05-12 [1] RSPM
 evaluate                1.0.4    2025-06-18 [1] RSPM
 farver                  2.1.2    2024-05-13 [1] RSPM
 fastmap                 1.2.0    2024-05-15 [1] RSPM
 fontawesome             0.5.3    2024-11-16 [1] RSPM
 forcats                 1.0.0    2023-01-29 [1] RSPM
 formatR                 1.14     2023-01-17 [1] CRAN (R 4.5.0)
 formatters            * 0.5.11   2025-04-09 [1] RSPM
 geepack                 1.3.12   2024-09-23 [1] RSPM
 generics                0.1.4    2025-05-09 [1] RSPM
 ggplot2                 3.5.2    2025-04-09 [1] RSPM
 glue                    1.8.0    2024-09-30 [1] RSPM
 gtable                  0.3.6    2024-10-25 [1] RSPM
 htmltools               0.5.8.1  2024-04-04 [1] RSPM
 htmlwidgets             1.6.4    2023-12-06 [1] RSPM
 httpuv                  1.6.16   2025-04-16 [1] RSPM
 jquerylib               0.1.4    2021-04-26 [1] RSPM
 jsonlite                2.0.0    2025-03-27 [1] RSPM
 knitr                   1.50     2025-03-16 [1] RSPM
 later                   1.4.2    2025-04-08 [1] RSPM
 lattice                 0.22-7   2025-04-02 [2] CRAN (R 4.5.0)
 lifecycle               1.0.4    2023-11-07 [1] RSPM
 logger                  0.4.0    2024-10-22 [1] RSPM
 magrittr              * 2.0.3    2022-03-30 [1] RSPM
 MASS                    7.3-65   2025-02-28 [2] CRAN (R 4.5.0)
 Matrix                  1.7-3    2025-03-11 [1] CRAN (R 4.5.0)
 memoise                 2.0.1    2021-11-26 [1] RSPM
 mime                    0.13     2025-03-17 [1] RSPM
 multcomp                1.4-28   2025-01-29 [1] RSPM
 mvtnorm                 1.3-3    2025-01-10 [1] RSPM
 nestcolor               0.1.3    2025-01-21 [1] RSPM
 nlme                    3.1-168  2025-03-31 [2] CRAN (R 4.5.0)
 pillar                  1.11.0   2025-07-04 [1] RSPM
 pkgcache                2.2.4    2025-05-26 [1] RSPM
 pkgconfig               2.0.3    2019-09-22 [1] RSPM
 processx                3.8.6    2025-02-21 [1] RSPM
 promises                1.3.3    2025-05-29 [1] RSPM
 ps                      1.9.1    2025-04-12 [1] RSPM
 purrr                   1.0.4    2025-02-05 [1] RSPM
 R6                      2.6.1    2025-02-15 [1] RSPM
 random.cdisc.data       0.3.16   2024-10-10 [1] RSPM
 rbibutils               2.3      2024-10-04 [1] RSPM
 RColorBrewer            1.1-3    2022-04-03 [1] RSPM
 Rcpp                    1.1.0    2025-07-02 [1] RSPM
 Rdpack                  2.6.4    2025-04-09 [1] RSPM
 rlang                   1.1.6    2025-04-11 [1] RSPM
 rmarkdown               2.29     2024-11-04 [1] RSPM
 rtables               * 0.6.13   2025-06-19 [1] RSPM
 sandwich                3.1-1    2024-09-15 [1] RSPM
 sass                    0.4.10   2025-04-11 [1] RSPM
 scales                  1.4.0    2025-04-24 [1] RSPM
 sessioninfo             1.2.3    2025-02-05 [1] any (@1.2.3)
 shiny                 * 1.11.1   2025-07-03 [1] RSPM
 shinycssloaders         1.1.0    2024-07-30 [1] RSPM
 shinyjs                 2.1.0    2021-12-23 [1] RSPM
 shinyvalidate           0.1.3    2023-10-04 [1] RSPM
 shinyWidgets            0.9.0    2025-02-21 [1] RSPM
 stringi                 1.8.7    2025-03-27 [1] RSPM
 stringr                 1.5.1    2023-11-14 [1] RSPM
 survival                3.8-3    2024-12-17 [2] CRAN (R 4.5.0)
 teal                  * 0.16.0   2025-02-23 [1] RSPM
 teal.code             * 0.6.1    2025-02-14 [1] RSPM
 teal.data             * 0.7.0    2025-01-28 [1] RSPM
 teal.logger             0.3.2    2025-02-14 [1] RSPM
 teal.modules.clinical * 0.10.0   2025-02-28 [1] RSPM
 teal.reporter           0.4.0    2025-01-24 [1] RSPM
 teal.slice            * 0.6.0    2025-02-03 [1] RSPM
 teal.transform        * 0.6.0    2025-02-12 [1] RSPM
 teal.widgets            0.4.3    2025-01-31 [1] RSPM
 tern                  * 0.9.9    2025-06-20 [1] RSPM
 tern.gee                0.1.5    2024-08-23 [1] RSPM
 testthat                3.2.3    2025-01-13 [1] RSPM
 TH.data                 1.1-3    2025-01-17 [1] RSPM
 tibble                  3.3.0    2025-06-08 [1] RSPM
 tidyr                   1.3.1    2024-01-24 [1] RSPM
 tidyselect              1.2.1    2024-03-11 [1] RSPM
 vctrs                   0.6.5    2023-12-01 [1] RSPM
 webshot                 0.5.5    2023-06-26 [1] CRAN (R 4.5.0)
 webshot2                0.1.2    2025-04-23 [1] RSPM
 websocket               1.4.4    2025-04-10 [1] RSPM
 withr                   3.0.2    2024-10-28 [1] RSPM
 xfun                    0.52     2025-04-02 [1] RSPM
 xtable                  1.8-4    2019-04-21 [1] RSPM
 yaml                    2.3.10   2024-07-26 [1] RSPM
 zoo                     1.8-14   2025-04-10 [1] RSPM

 [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

AET03
AET04_PI
Source Code
---
title: AET04
subtitle: Adverse Events by Highest NCI CTCAE Grade
---

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

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

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

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) %>% filter(TRT01A != "<Missing>")
adae <- df_explicit_na(adae) %>%
  var_relabel(
    AEBODSYS = "MedDRA System Organ Class",
    AEDECOD = "MedDRA Preferred Term"
  ) %>%
  filter(
    ANL01FL == "Y",
    AETOXGR != "<Missing>"
  )

# Pre-Processing
grade_groups <- list(
  "Grade 1-2" = c("1", "2"),
  "Grade 3-4" = c("3", "4"),
  "Grade 5" = "5"
)
adae$TOTAL_VAR <- "- Any adverse events - "

# Helper function to avoid filtering also the first part of the table, where general information is given.
my_row_condition <- function(row_fnc_condition) {
  function(table_row) {
    if (indent_mod(table_row) == 0) {
      return(TRUE)
    } else {
      row_fnc_condition(table_row)
    }
  }
}

# Helper function to calculate sum from first nested row
score_all_sum <- function(tt) {
  cleaf <- collect_leaves(tt)[[1]]
  if (NROW(cleaf) == 0) {
    stop("score_all_sum score function used at subtable [", obj_name(tt), "] that has no content.")
  }
  sum(sapply(row_values(cleaf), function(cv) cv[1]))
}

# Raw table used by variant 8/10
raw_table <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ACTARM") %>%
  split_rows_by(
    var = "TOTAL_VAR",
    label_pos = "hidden",
    child_labels = "visible",
    indent_mod = -1L
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 7L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 6L
  ) %>%
  split_rows_by(
    "AEBODSYS",
    child_labels = "visible",
    nested = FALSE,
    split_fun = drop_split_levels,
    split_label = var_labels(adae)[["AEBODSYS"]],
    label_pos = "topleft"
  ) %>%
  split_rows_by(
    "AEDECOD",
    child_labels = "visible",
    split_fun = add_overall_level("- Overall -", trim = TRUE),
    split_label = var_labels(adae)[["AEDECOD"]],
    label_pos = "topleft"
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 6L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 5L
  ) %>%
  append_topleft("                            Grade") %>%
  build_table(adae, alt_counts_df = adsl) %>%
  prune_table() %>%
  sort_at_path(
    path = "AEBODSYS",
    scorefun = score_all_sum,
    decreasing = TRUE
  ) %>%
  sort_at_path(
    path = c("AEBODSYS", "*", "AEDECOD"),
    scorefun = score_all_sum,
    decreasing = TRUE
  )
```

```{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")}
lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ACTARM") %>%
  split_rows_by(
    var = "TOTAL_VAR",
    label_pos = "hidden",
    child_labels = "visible",
    indent_mod = -1L
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 7L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 6L
  ) %>%
  split_rows_by(
    "AEBODSYS",
    child_labels = "visible",
    nested = FALSE,
    split_fun = drop_split_levels,
    split_label = var_labels(adae)[["AEBODSYS"]],
    label_pos = "topleft"
  ) %>%
  split_rows_by(
    "AEDECOD",
    child_labels = "visible",
    split_fun = add_overall_level("- Overall -", trim = TRUE),
    split_label = var_labels(adae)[["AEDECOD"]],
    label_pos = "topleft"
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 6L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 5L
  ) %>%
  append_topleft("                            Grade")

result <- lyt %>%
  build_table(adae, alt_counts_df = adsl) %>%
  prune_table() %>%
  sort_at_path(
    path = "AEBODSYS",
    scorefun = score_all_sum,
    decreasing = TRUE
  ) %>%
  sort_at_path(
    path = c("AEBODSYS", "*", "AEDECOD"),
    scorefun = score_all_sum,
    decreasing = TRUE
  )

result
```

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

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

## Table with Fill-In <br/> of Treatment Groups

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

```{r variant2, test = list(result_v2 = "result")}
adae2 <- adae %>% filter(ACTARM == "A: Drug X")

lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ACTARM") %>%
  split_rows_by(
    var = "TOTAL_VAR",
    label_pos = "hidden",
    child_labels = "visible",
    indent_mod = -1L
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 7L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 6L
  ) %>%
  split_rows_by(
    "AEBODSYS",
    child_labels = "visible",
    nested = FALSE,
    split_fun = drop_split_levels,
    split_label = var_labels(adae)[["AEBODSYS"]],
    label_pos = "topleft"
  ) %>%
  split_rows_by(
    "AEDECOD",
    child_labels = "visible",
    split_fun = add_overall_level("- Overall -", trim = TRUE),
    split_label = var_labels(adae)[["AEDECOD"]],
    label_pos = "topleft"
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 6L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 5L
  ) %>%
  append_topleft("                            Grade")

result <- lyt %>%
  build_table(adae2, alt_counts_df = adsl) %>%
  prune_table() %>%
  sort_at_path(
    path = "AEBODSYS",
    scorefun = score_all_sum,
    decreasing = TRUE
  ) %>%
  sort_at_path(
    path = c("AEBODSYS", "*", "AEDECOD"),
    scorefun = score_all_sum,
    decreasing = TRUE
  )

result
```

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

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

## Table with Fill-In <br/> of Grades

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

```{r variant3, test = list(result_v3 = "result")}
lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ACTARM") %>%
  split_rows_by(
    var = "TOTAL_VAR",
    label_pos = "hidden",
    child_labels = "visible",
    indent_mod = -1L
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 7L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 6L
  ) %>%
  split_rows_by(
    "AEBODSYS",
    child_labels = "visible",
    nested = FALSE,
    split_fun = drop_split_levels,
    split_label = var_labels(adae)[["AEBODSYS"]],
    label_pos = "topleft"
  ) %>%
  split_rows_by(
    "AEDECOD",
    child_labels = "visible",
    split_fun = add_overall_level("- Overall -", trim = TRUE),
    split_label = var_labels(adae)[["AEDECOD"]],
    label_pos = "topleft"
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 6L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 5L
  ) %>%
  append_topleft("                            Grade")

result <- lyt %>%
  build_table(adae, alt_counts_df = adsl) %>%
  sort_at_path(
    path = "AEBODSYS",
    scorefun = score_all_sum,
    decreasing = TRUE
  ) %>%
  sort_at_path(
    path = c("AEBODSYS", "*", "AEDECOD"),
    scorefun = score_all_sum,
    decreasing = TRUE
  )

result
```

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

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

## Table with Collapsing <br/> of Grades

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

```{r variant4, test = list(result_v4 = "result")}
grade_groups_1 <- list(
  "Grade 1-2" = c("1", "2"),
  "Grade 3-5" = c("3", "4", "5")
)

lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ACTARM") %>%
  split_rows_by(
    var = "TOTAL_VAR",
    label_pos = "hidden",
    child_labels = "visible",
    indent_mod = -1L
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 7L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups_1,
    .indent_mods = 6L
  ) %>%
  split_rows_by(
    "AEBODSYS",
    child_labels = "visible",
    nested = FALSE,
    split_fun = drop_split_levels,
    split_label = var_labels(adae)[["AEBODSYS"]],
    label_pos = "topleft"
  ) %>%
  split_rows_by(
    "AEDECOD",
    child_labels = "visible",
    split_fun = add_overall_level("- Overall -", trim = TRUE),
    split_label = var_labels(adae)[["AEDECOD"]],
    label_pos = "topleft"
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 6L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups_1,
    .indent_mods = 5L
  ) %>%
  append_topleft("                            Grade")

result <- lyt %>%
  build_table(adae, alt_counts_df = adsl) %>%
  prune_table() %>%
  sort_at_path(
    path = "AEBODSYS",
    scorefun = score_all_sum,
    decreasing = TRUE
  ) %>%
  sort_at_path(
    path = c("AEBODSYS", "*", "AEDECOD"),
    scorefun = score_all_sum,
    decreasing = TRUE
  )

result
```

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

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

## Table Using Worst Grade <br/> Flags from ADAE

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

# No Worst Grade Flags found in the ADAE data set.
```

## Table with an Incidence Rate <br/> $\geq$ 40%, Totals Restricted

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

```{r variant6, test = list(result_v6 = "result")}
# Simple wrapper to return subset ADAE to a threshold of xx%.
get_adae_trimmed <- function(adsl, adae, cutoff_rate) {
  n_per_arm <- adsl %>%
    dplyr::count(ACTARM)

  anl_terms <- adae %>%
    dplyr::group_by(ACTARM, 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 = "ACTARM"
  ) %>%
    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
}

adae6 <- get_adae_trimmed(adsl, adae, cutoff_rate = 0.4)

lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ACTARM") %>%
  split_rows_by(
    var = "TOTAL_VAR",
    label_pos = "hidden",
    child_labels = "visible",
    indent_mod = -1L
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 7L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 6L
  ) %>%
  split_rows_by(
    "AEBODSYS",
    child_labels = "visible",
    nested = FALSE,
    split_fun = drop_split_levels,
    split_label = var_labels(adae)[["AEBODSYS"]],
    label_pos = "topleft"
  ) %>%
  split_rows_by(
    "AEDECOD",
    child_labels = "visible",
    split_fun = add_overall_level("- Overall -", trim = TRUE),
    split_label = var_labels(adae)[["AEDECOD"]],
    label_pos = "topleft"
  ) %>%
  summarize_num_patients(
    var = "USUBJID",
    .stats = "unique",
    .labels = "- Any Grade -",
    .indent_mods = 6L
  ) %>%
  count_occurrences_by_grade(
    var = "AETOXGR",
    grade_groups = grade_groups,
    .indent_mods = 5L
  ) %>%
  append_topleft("                            Grade")

result <- lyt %>%
  build_table(adae6, alt_counts_df = adsl) %>%
  prune_table() %>%
  sort_at_path(
    path = "AEBODSYS",
    scorefun = score_all_sum,
    decreasing = TRUE
  ) %>%
  sort_at_path(
    path = c("AEBODSYS", "*", "AEDECOD"),
    scorefun = score_all_sum,
    decreasing = TRUE
  )

result
```

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

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

## Table with an Incidence Rate <br/> $\geq$ X%, Totals Unrestricted

Variant 7 was not created. With this variant, the SOC level is not trimmed (even if there are no terms left).

## Table with an Incidence <br/> Rate $\geq$ 58 Patients

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

```{r variant8, test = list(result_v8 = "result")}
cutoff <- 58L
row_condition <- has_count_in_any_col(atleast = cutoff, col_names = levels(adsl$ACTARM))

result <- prune_table(raw_table, keep_content_rows(my_row_condition(row_condition)))

result
```

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

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

## Table with a Difference in <br/> Incidence Rate $\geq$ 10%

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

```{r variant9, test = list(result_v9 = "result")}
cutoff <- 0.1
row_condition <- has_fractions_difference(atleast = cutoff, col_names = levels(adsl$ACTARM))

result <- prune_table(raw_table, keep_content_rows(my_row_condition(row_condition)))

result
```

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

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

## Table with an Incidence Rate <br/> $\geq$ 5%, SOCs \< 5% Removed

Variant 10 was not done With this variant, SOC levels above the threshold are still in the table even if there are no terms left.

## Table with an Incidence Rate $\geq$ 40%, <br/> All SOCs w/o Preferred Terms Removed

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

```{r variant11, test = list(result_v11 = "result")}
cutoff <- 0.4
row_condition <- has_fraction_in_any_col(atleast = cutoff, col_names = levels(adsl$ACTARM))

result <- prune_table(raw_table, keep_content_rows(my_row_condition(row_condition)))

result
```

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

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

## Data Setup

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

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

## `teal` App

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

```{r teal, opts.label = c("skip_if_testing", "app")}
library(teal.modules.clinical)

## Data reproducible code
data <- teal_data()
data <- within(data, {
  ADSL <- random.cdisc.data::cadsl
  ADAE <- random.cdisc.data::cadae
})
datanames <- c("ADSL", "ADAE")
datanames(data) <- datanames
join_keys(data) <- default_cdisc_join_keys[datanames]

## Reusable Configuration For Modules
ADAE <- data[["ADAE"]]

## Setup App
app <- init(
  data = data,
  modules = modules(
    tm_t_events_by_grade(
      label = "Adverse Events by Grade Table",
      dataname = "ADAE",
      arm_var = choices_selected(c("ARM", "ARMCD"), "ARM"),
      llt = choices_selected(
        choices = variable_choices(ADAE, c("AETERM", "AEDECOD")),
        selected = c("AEDECOD")
      ),
      hlt = choices_selected(
        choices = variable_choices(ADAE, c("AEBODSYS", "AESOC")),
        selected = "AEBODSYS"
      ),
      grade = choices_selected(
        choices = variable_choices(ADAE, c("AETOXGR", "AESEV")),
        selected = "AETOXGR"
      )
    )
  )
)

shinyApp(app$ui, app$server)
```

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

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

Made with ❤️ by the NEST Team

  • Edit this page
  • Report an issue
Cookie Preferences