TLG Catalog - Stable
  • Stable
    • Dev
  1. Tables
  2. Safety
  3. ENTXX
  • 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. Safety
  3. ENTXX

ENTXX

Enrollment Variants


Output

  • ENT01 – Enrollment by Region,
    Country, and Investigator Number
  • ENT01A – Enrollment by Country
    and Investigator Number
  • ENT02 – Enrollment by Region, Country,
    and Investigator Number/Name
  • ENT02A – Enrollment by Country
    and Investigator Number/Name
  • Data Setup
  • Preview
  • Try this using WebR
Code
# Define the split function
split_fun <- drop_split_levels

lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ARM") %>%
  add_overall_col(label = "All Patients") %>%
  split_rows_by("REGION1", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adsl$REGION1)) %>%
  summarize_row_groups() %>%
  split_rows_by("COUNTRY", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adsl$COUNTRY)) %>%
  summarize_row_groups() %>%
  analyze_vars("INVID", .stats = "count_fraction") %>%
  append_varlabels(adsl, "INVID", 2L)

result <- build_table(lyt, adsl) %>%
  prune_table()

result
Geographic Region 1                                                                  
  Country                     A: Drug X    B: Placebo   C: Combination   All Patients
    Investigator Identifier    (N=134)      (N=134)        (N=132)         (N=400)   
—————————————————————————————————————————————————————————————————————————————————————
Africa                         8 (6.0%)     7 (5.2%)      11 (8.3%)       26 (6.5%)  
  NGA                          8 (6.0%)     7 (5.2%)      11 (8.3%)       26 (6.5%)  
    INV ID NGA-1              3 (37.5%)    3 (42.9%)      4 (36.4%)       10 (38.5%) 
    INV ID NGA-11             1 (12.5%)    2 (28.6%)      3 (27.3%)       6 (23.1%)  
    INV ID NGA-12                 0        1 (14.3%)       1 (9.1%)        2 (7.7%)  
    INV ID NGA-17              2 (25%)         0              0            2 (7.7%)  
    INV ID NGA-2              1 (12.5%)    1 (14.3%)          0            2 (7.7%)  
    INV ID NGA-4              1 (12.5%)        0           1 (9.1%)        2 (7.7%)  
    INV ID NGA-5                  0            0           1 (9.1%)        1 (3.8%)  
    INV ID NGA-6                  0            0           1 (9.1%)        1 (3.8%)  
Asia                          91 (67.9%)   94 (70.1%)     83 (62.9%)     268 (67.0%) 
  CHN                         74 (55.2%)   81 (60.4%)     64 (48.5%)     219 (54.8%) 
    INV ID CHN-1              21 (28.4%)   20 (24.7%)      16 (25%)        57 (26%)  
    INV ID CHN-10                 0         1 (1.2%)          0            1 (0.5%)  
    INV ID CHN-11             12 (16.2%)   20 (24.7%)      16 (25%)       48 (21.9%) 
    INV ID CHN-12              4 (5.4%)     3 (3.7%)       1 (1.6%)        8 (3.7%)  
    INV ID CHN-13              2 (2.7%)     6 (7.4%)          0            8 (3.7%)  
    INV ID CHN-14              4 (5.4%)     2 (2.5%)       3 (4.7%)        9 (4.1%)  
    INV ID CHN-15              2 (2.7%)        0           4 (6.2%)        6 (2.7%)  
    INV ID CHN-16                 0         3 (3.7%)       3 (4.7%)        6 (2.7%)  
    INV ID CHN-17              4 (5.4%)     4 (4.9%)       3 (4.7%)        11 (5%)   
    INV ID CHN-18              1 (1.4%)        0           2 (3.1%)        3 (1.4%)  
    INV ID CHN-2              9 (12.2%)     4 (4.9%)       3 (4.7%)       16 (7.3%)  
    INV ID CHN-3               5 (6.8%)     1 (1.2%)       5 (7.8%)        11 (5%)   
    INV ID CHN-4               3 (4.1%)     3 (3.7%)       3 (4.7%)        9 (4.1%)  
    INV ID CHN-5               4 (5.4%)     3 (3.7%)       4 (6.2%)        11 (5%)   
    INV ID CHN-6               1 (1.4%)     3 (3.7%)          0            4 (1.8%)  
    INV ID CHN-7                  0         5 (6.2%)       1 (1.6%)        6 (2.7%)  
    INV ID CHN-8               1 (1.4%)     1 (1.2%)          0            2 (0.9%)  
    INV ID CHN-9               1 (1.4%)     2 (2.5%)          0            3 (1.4%)  
  PAK                         12 (9.0%)     9 (6.7%)      10 (7.6%)       31 (7.8%)  
    INV ID PAK-1              2 (16.7%)    4 (44.4%)       4 (40%)        10 (32.3%) 
    INV ID PAK-11             4 (33.3%)    3 (33.3%)       2 (20%)         9 (29%)   
    INV ID PAK-12             2 (16.7%)        0              0            2 (6.5%)  
    INV ID PAK-13              1 (8.3%)    1 (11.1%)          0            2 (6.5%)  
    INV ID PAK-14              1 (8.3%)        0              0            1 (3.2%)  
    INV ID PAK-15              1 (8.3%)        0              0            1 (3.2%)  
    INV ID PAK-2               1 (8.3%)        0           2 (20%)         3 (9.7%)  
    INV ID PAK-4                  0        1 (11.1%)       1 (10%)         2 (6.5%)  
    INV ID PAK-5                  0            0           1 (10%)         1 (3.2%)  
  JPN                          5 (3.7%)     4 (3.0%)       9 (6.8%)       18 (4.5%)  
    INV ID JPN-1               2 (40%)      2 (50%)       1 (11.1%)       5 (27.8%)  
    INV ID JPN-11                 0            0          3 (33.3%)       3 (16.7%)  
    INV ID JPN-12                 0            0          1 (11.1%)        1 (5.6%)  
    INV ID JPN-14                 0         1 (25%)           0            1 (5.6%)  
    INV ID JPN-17                 0            0          2 (22.2%)       2 (11.1%)  
    INV ID JPN-18              1 (20%)         0              0            1 (5.6%)  
    INV ID JPN-2                  0            0          1 (11.1%)        1 (5.6%)  
    INV ID JPN-3                  0         1 (25%)           0            1 (5.6%)  
    INV ID JPN-5               1 (20%)         0          1 (11.1%)       2 (11.1%)  
    INV ID JPN-6               1 (20%)         0              0            1 (5.6%)  
Eurasia                        5 (3.7%)     8 (6.0%)       6 (4.5%)       19 (4.8%)  
  RUS                          5 (3.7%)     8 (6.0%)       6 (4.5%)       19 (4.8%)  
    INV ID RUS-1               1 (20%)         0              0            1 (5.3%)  
    INV ID RUS-11                 0         2 (25%)       2 (33.3%)       4 (21.1%)  
    INV ID RUS-12                 0        1 (12.5%)          0            1 (5.3%)  
    INV ID RUS-13              1 (20%)         0              0            1 (5.3%)  
    INV ID RUS-14                 0            0          1 (16.7%)        1 (5.3%)  
    INV ID RUS-16              1 (20%)     1 (12.5%)          0           2 (10.5%)  
    INV ID RUS-18              1 (20%)         0              0            1 (5.3%)  
    INV ID RUS-2                  0        1 (12.5%)          0            1 (5.3%)  
    INV ID RUS-3                  0            0          1 (16.7%)        1 (5.3%)  
    INV ID RUS-4                  0         2 (25%)       1 (16.7%)       3 (15.8%)  
    INV ID RUS-5                  0        1 (12.5%)          0            1 (5.3%)  
    INV ID RUS-6               1 (20%)         0              0            1 (5.3%)  
    INV ID RUS-7                  0            0          1 (16.7%)        1 (5.3%)  
Europe                         4 (3.0%)     3 (2.2%)       2 (1.5%)        9 (2.2%)  
  GBR                          4 (3.0%)     3 (2.2%)       2 (1.5%)        9 (2.2%)  
    INV ID GBR-1               2 (50%)         0           1 (50%)        3 (33.3%)  
    INV ID GBR-11                 0        1 (33.3%)       1 (50%)        2 (22.2%)  
    INV ID GBR-13              1 (25%)         0              0           1 (11.1%)  
    INV ID GBR-15              1 (25%)         0              0           1 (11.1%)  
    INV ID GBR-17                 0        1 (33.3%)          0           1 (11.1%)  
    INV ID GBR-6                  0        1 (33.3%)          0           1 (11.1%)  
North America                 13 (9.7%)    15 (11.2%)     20 (15.2%)      48 (12.0%) 
  USA                         10 (7.5%)    13 (9.7%)      17 (12.9%)      40 (10.0%) 
    INV ID USA-1               1 (10%)     4 (30.8%)      5 (29.4%)        10 (25%)  
    INV ID USA-11              4 (40%)     2 (15.4%)      3 (17.6%)       9 (22.5%)  
    INV ID USA-12              1 (10%)     2 (15.4%)      3 (17.6%)        6 (15%)   
    INV ID USA-14              1 (10%)         0              0            1 (2.5%)  
    INV ID USA-15                 0         1 (7.7%)       1 (5.9%)         2 (5%)   
    INV ID USA-17              1 (10%)      1 (7.7%)          0             2 (5%)   
    INV ID USA-19                 0            0           1 (5.9%)        1 (2.5%)  
    INV ID USA-2                  0            0           1 (5.9%)        1 (2.5%)  
    INV ID USA-3               1 (10%)         0           1 (5.9%)         2 (5%)   
    INV ID USA-4                  0         1 (7.7%)       1 (5.9%)         2 (5%)   
    INV ID USA-5                  0         1 (7.7%)          0            1 (2.5%)  
    INV ID USA-6                  0         1 (7.7%)          0            1 (2.5%)  
    INV ID USA-8                  0            0           1 (5.9%)        1 (2.5%)  
    INV ID USA-9               1 (10%)         0              0            1 (2.5%)  
  CAN                          3 (2.2%)     2 (1.5%)       3 (2.3%)        8 (2.0%)  
    INV ID CAN-1              1 (33.3%)     1 (50%)           0            2 (25%)   
    INV ID CAN-11             1 (33.3%)        0          1 (33.3%)        2 (25%)   
    INV ID CAN-14             1 (33.3%)        0              0           1 (12.5%)  
    INV ID CAN-4                  0         1 (50%)       1 (33.3%)        2 (25%)   
    INV ID CAN-5                  0            0          1 (33.3%)       1 (12.5%)  
South America                 13 (9.7%)     7 (5.2%)      10 (7.6%)       30 (7.5%)  
  BRA                         13 (9.7%)     7 (5.2%)      10 (7.6%)       30 (7.5%)  
    INV ID BRA-1              4 (30.8%)    2 (28.6%)       2 (20%)        8 (26.7%)  
    INV ID BRA-11             4 (30.8%)        0           4 (40%)        8 (26.7%)  
    INV ID BRA-12                 0        1 (14.3%)          0            1 (3.3%)  
    INV ID BRA-13              1 (7.7%)        0              0            1 (3.3%)  
    INV ID BRA-14              1 (7.7%)        0           1 (10%)         2 (6.7%)  
    INV ID BRA-15              1 (7.7%)        0              0            1 (3.3%)  
    INV ID BRA-2               1 (7.7%)    1 (14.3%)          0            2 (6.7%)  
    INV ID BRA-3                  0        2 (28.6%)          0            2 (6.7%)  
    INV ID BRA-4                  0        1 (14.3%)       1 (10%)         2 (6.7%)  
    INV ID BRA-5                  0            0           1 (10%)         1 (3.3%)  
    INV ID BRA-6               1 (7.7%)        0              0            1 (3.3%)  
    INV ID BRA-7                  0            0           1 (10%)         1 (3.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
lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ARM") %>%
  add_overall_col(label = "All Patients") %>%
  split_rows_by("COUNTRY", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adsl$COUNTRY)) %>%
  summarize_row_groups() %>%
  analyze_vars("INVID", .stats = "count_fraction") %>%
  append_varlabels(adsl, "INVID", 1L)

result <- build_table(lyt, adsl) %>%
  prune_table()

result
Country                     A: Drug X    B: Placebo   C: Combination   All Patients
  Investigator Identifier    (N=134)      (N=134)        (N=132)         (N=400)   
———————————————————————————————————————————————————————————————————————————————————
CHN                         74 (55.2%)   81 (60.4%)     64 (48.5%)     219 (54.8%) 
  INV ID CHN-1              21 (28.4%)   20 (24.7%)      16 (25%)        57 (26%)  
  INV ID CHN-10                 0         1 (1.2%)          0            1 (0.5%)  
  INV ID CHN-11             12 (16.2%)   20 (24.7%)      16 (25%)       48 (21.9%) 
  INV ID CHN-12              4 (5.4%)     3 (3.7%)       1 (1.6%)        8 (3.7%)  
  INV ID CHN-13              2 (2.7%)     6 (7.4%)          0            8 (3.7%)  
  INV ID CHN-14              4 (5.4%)     2 (2.5%)       3 (4.7%)        9 (4.1%)  
  INV ID CHN-15              2 (2.7%)        0           4 (6.2%)        6 (2.7%)  
  INV ID CHN-16                 0         3 (3.7%)       3 (4.7%)        6 (2.7%)  
  INV ID CHN-17              4 (5.4%)     4 (4.9%)       3 (4.7%)        11 (5%)   
  INV ID CHN-18              1 (1.4%)        0           2 (3.1%)        3 (1.4%)  
  INV ID CHN-2              9 (12.2%)     4 (4.9%)       3 (4.7%)       16 (7.3%)  
  INV ID CHN-3               5 (6.8%)     1 (1.2%)       5 (7.8%)        11 (5%)   
  INV ID CHN-4               3 (4.1%)     3 (3.7%)       3 (4.7%)        9 (4.1%)  
  INV ID CHN-5               4 (5.4%)     3 (3.7%)       4 (6.2%)        11 (5%)   
  INV ID CHN-6               1 (1.4%)     3 (3.7%)          0            4 (1.8%)  
  INV ID CHN-7                  0         5 (6.2%)       1 (1.6%)        6 (2.7%)  
  INV ID CHN-8               1 (1.4%)     1 (1.2%)          0            2 (0.9%)  
  INV ID CHN-9               1 (1.4%)     2 (2.5%)          0            3 (1.4%)  
USA                         10 (7.5%)    13 (9.7%)      17 (12.9%)      40 (10.0%) 
  INV ID USA-1               1 (10%)     4 (30.8%)      5 (29.4%)        10 (25%)  
  INV ID USA-11              4 (40%)     2 (15.4%)      3 (17.6%)       9 (22.5%)  
  INV ID USA-12              1 (10%)     2 (15.4%)      3 (17.6%)        6 (15%)   
  INV ID USA-14              1 (10%)         0              0            1 (2.5%)  
  INV ID USA-15                 0         1 (7.7%)       1 (5.9%)         2 (5%)   
  INV ID USA-17              1 (10%)      1 (7.7%)          0             2 (5%)   
  INV ID USA-19                 0            0           1 (5.9%)        1 (2.5%)  
  INV ID USA-2                  0            0           1 (5.9%)        1 (2.5%)  
  INV ID USA-3               1 (10%)         0           1 (5.9%)         2 (5%)   
  INV ID USA-4                  0         1 (7.7%)       1 (5.9%)         2 (5%)   
  INV ID USA-5                  0         1 (7.7%)          0            1 (2.5%)  
  INV ID USA-6                  0         1 (7.7%)          0            1 (2.5%)  
  INV ID USA-8                  0            0           1 (5.9%)        1 (2.5%)  
  INV ID USA-9               1 (10%)         0              0            1 (2.5%)  
BRA                         13 (9.7%)     7 (5.2%)      10 (7.6%)       30 (7.5%)  
  INV ID BRA-1              4 (30.8%)    2 (28.6%)       2 (20%)        8 (26.7%)  
  INV ID BRA-11             4 (30.8%)        0           4 (40%)        8 (26.7%)  
  INV ID BRA-12                 0        1 (14.3%)          0            1 (3.3%)  
  INV ID BRA-13              1 (7.7%)        0              0            1 (3.3%)  
  INV ID BRA-14              1 (7.7%)        0           1 (10%)         2 (6.7%)  
  INV ID BRA-15              1 (7.7%)        0              0            1 (3.3%)  
  INV ID BRA-2               1 (7.7%)    1 (14.3%)          0            2 (6.7%)  
  INV ID BRA-3                  0        2 (28.6%)          0            2 (6.7%)  
  INV ID BRA-4                  0        1 (14.3%)       1 (10%)         2 (6.7%)  
  INV ID BRA-5                  0            0           1 (10%)         1 (3.3%)  
  INV ID BRA-6               1 (7.7%)        0              0            1 (3.3%)  
  INV ID BRA-7                  0            0           1 (10%)         1 (3.3%)  
PAK                         12 (9.0%)     9 (6.7%)      10 (7.6%)       31 (7.8%)  
  INV ID PAK-1              2 (16.7%)    4 (44.4%)       4 (40%)        10 (32.3%) 
  INV ID PAK-11             4 (33.3%)    3 (33.3%)       2 (20%)         9 (29%)   
  INV ID PAK-12             2 (16.7%)        0              0            2 (6.5%)  
  INV ID PAK-13              1 (8.3%)    1 (11.1%)          0            2 (6.5%)  
  INV ID PAK-14              1 (8.3%)        0              0            1 (3.2%)  
  INV ID PAK-15              1 (8.3%)        0              0            1 (3.2%)  
  INV ID PAK-2               1 (8.3%)        0           2 (20%)         3 (9.7%)  
  INV ID PAK-4                  0        1 (11.1%)       1 (10%)         2 (6.5%)  
  INV ID PAK-5                  0            0           1 (10%)         1 (3.2%)  
NGA                          8 (6.0%)     7 (5.2%)      11 (8.3%)       26 (6.5%)  
  INV ID NGA-1              3 (37.5%)    3 (42.9%)      4 (36.4%)       10 (38.5%) 
  INV ID NGA-11             1 (12.5%)    2 (28.6%)      3 (27.3%)       6 (23.1%)  
  INV ID NGA-12                 0        1 (14.3%)       1 (9.1%)        2 (7.7%)  
  INV ID NGA-17              2 (25%)         0              0            2 (7.7%)  
  INV ID NGA-2              1 (12.5%)    1 (14.3%)          0            2 (7.7%)  
  INV ID NGA-4              1 (12.5%)        0           1 (9.1%)        2 (7.7%)  
  INV ID NGA-5                  0            0           1 (9.1%)        1 (3.8%)  
  INV ID NGA-6                  0            0           1 (9.1%)        1 (3.8%)  
RUS                          5 (3.7%)     8 (6.0%)       6 (4.5%)       19 (4.8%)  
  INV ID RUS-1               1 (20%)         0              0            1 (5.3%)  
  INV ID RUS-11                 0         2 (25%)       2 (33.3%)       4 (21.1%)  
  INV ID RUS-12                 0        1 (12.5%)          0            1 (5.3%)  
  INV ID RUS-13              1 (20%)         0              0            1 (5.3%)  
  INV ID RUS-14                 0            0          1 (16.7%)        1 (5.3%)  
  INV ID RUS-16              1 (20%)     1 (12.5%)          0           2 (10.5%)  
  INV ID RUS-18              1 (20%)         0              0            1 (5.3%)  
  INV ID RUS-2                  0        1 (12.5%)          0            1 (5.3%)  
  INV ID RUS-3                  0            0          1 (16.7%)        1 (5.3%)  
  INV ID RUS-4                  0         2 (25%)       1 (16.7%)       3 (15.8%)  
  INV ID RUS-5                  0        1 (12.5%)          0            1 (5.3%)  
  INV ID RUS-6               1 (20%)         0              0            1 (5.3%)  
  INV ID RUS-7                  0            0          1 (16.7%)        1 (5.3%)  
JPN                          5 (3.7%)     4 (3.0%)       9 (6.8%)       18 (4.5%)  
  INV ID JPN-1               2 (40%)      2 (50%)       1 (11.1%)       5 (27.8%)  
  INV ID JPN-11                 0            0          3 (33.3%)       3 (16.7%)  
  INV ID JPN-12                 0            0          1 (11.1%)        1 (5.6%)  
  INV ID JPN-14                 0         1 (25%)           0            1 (5.6%)  
  INV ID JPN-17                 0            0          2 (22.2%)       2 (11.1%)  
  INV ID JPN-18              1 (20%)         0              0            1 (5.6%)  
  INV ID JPN-2                  0            0          1 (11.1%)        1 (5.6%)  
  INV ID JPN-3                  0         1 (25%)           0            1 (5.6%)  
  INV ID JPN-5               1 (20%)         0          1 (11.1%)       2 (11.1%)  
  INV ID JPN-6               1 (20%)         0              0            1 (5.6%)  
GBR                          4 (3.0%)     3 (2.2%)       2 (1.5%)        9 (2.2%)  
  INV ID GBR-1               2 (50%)         0           1 (50%)        3 (33.3%)  
  INV ID GBR-11                 0        1 (33.3%)       1 (50%)        2 (22.2%)  
  INV ID GBR-13              1 (25%)         0              0           1 (11.1%)  
  INV ID GBR-15              1 (25%)         0              0           1 (11.1%)  
  INV ID GBR-17                 0        1 (33.3%)          0           1 (11.1%)  
  INV ID GBR-6                  0        1 (33.3%)          0           1 (11.1%)  
CAN                          3 (2.2%)     2 (1.5%)       3 (2.3%)        8 (2.0%)  
  INV ID CAN-1              1 (33.3%)     1 (50%)           0            2 (25%)   
  INV ID CAN-11             1 (33.3%)        0          1 (33.3%)        2 (25%)   
  INV ID CAN-14             1 (33.3%)        0              0           1 (12.5%)  
  INV ID CAN-4                  0         1 (50%)       1 (33.3%)        2 (25%)   
  INV ID CAN-5                  0            0          1 (33.3%)       1 (12.5%)  
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("ARM") %>%
  add_overall_col(label = "All Patients") %>%
  split_rows_by("REGION1", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adsl$REGION1)) %>%
  summarize_row_groups() %>%
  split_rows_by("COUNTRY", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adsl$COUNTRY)) %>%
  summarize_row_groups() %>%
  analyze_vars("INVID_INVNAM", .stats = "count_fraction") %>%
  append_varlabels(adsl, "INVID_INVNAM", 2L)

result <- build_table(lyt, adsl) %>%
  prune_table()

result
Geographic Region 1                                                                         
  Country                            A: Drug X    B: Placebo   C: Combination   All Patients
    Investigator Number/Name          (N=134)      (N=134)        (N=132)         (N=400)   
————————————————————————————————————————————————————————————————————————————————————————————
Africa                                8 (6.0%)     7 (5.2%)      11 (8.3%)       26 (6.5%)  
  NGA                                 8 (6.0%)     7 (5.2%)      11 (8.3%)       26 (6.5%)  
    INV ID NGA-1 / Dr. NGA-1 Doe     3 (37.5%)    3 (42.9%)      4 (36.4%)       10 (38.5%) 
    INV ID NGA-11 / Dr. NGA-11 Doe   1 (12.5%)    2 (28.6%)      3 (27.3%)       6 (23.1%)  
    INV ID NGA-12 / Dr. NGA-12 Doe       0        1 (14.3%)       1 (9.1%)        2 (7.7%)  
    INV ID NGA-17 / Dr. NGA-17 Doe    2 (25%)         0              0            2 (7.7%)  
    INV ID NGA-2 / Dr. NGA-2 Doe     1 (12.5%)    1 (14.3%)          0            2 (7.7%)  
    INV ID NGA-4 / Dr. NGA-4 Doe     1 (12.5%)        0           1 (9.1%)        2 (7.7%)  
    INV ID NGA-5 / Dr. NGA-5 Doe         0            0           1 (9.1%)        1 (3.8%)  
    INV ID NGA-6 / Dr. NGA-6 Doe         0            0           1 (9.1%)        1 (3.8%)  
Asia                                 91 (67.9%)   94 (70.1%)     83 (62.9%)     268 (67.0%) 
  CHN                                74 (55.2%)   81 (60.4%)     64 (48.5%)     219 (54.8%) 
    INV ID CHN-1 / Dr. CHN-1 Doe     21 (28.4%)   20 (24.7%)      16 (25%)        57 (26%)  
    INV ID CHN-10 / Dr. CHN-10 Doe       0         1 (1.2%)          0            1 (0.5%)  
    INV ID CHN-11 / Dr. CHN-11 Doe   12 (16.2%)   20 (24.7%)      16 (25%)       48 (21.9%) 
    INV ID CHN-12 / Dr. CHN-12 Doe    4 (5.4%)     3 (3.7%)       1 (1.6%)        8 (3.7%)  
    INV ID CHN-13 / Dr. CHN-13 Doe    2 (2.7%)     6 (7.4%)          0            8 (3.7%)  
    INV ID CHN-14 / Dr. CHN-14 Doe    4 (5.4%)     2 (2.5%)       3 (4.7%)        9 (4.1%)  
    INV ID CHN-15 / Dr. CHN-15 Doe    2 (2.7%)        0           4 (6.2%)        6 (2.7%)  
    INV ID CHN-16 / Dr. CHN-16 Doe       0         3 (3.7%)       3 (4.7%)        6 (2.7%)  
    INV ID CHN-17 / Dr. CHN-17 Doe    4 (5.4%)     4 (4.9%)       3 (4.7%)        11 (5%)   
    INV ID CHN-18 / Dr. CHN-18 Doe    1 (1.4%)        0           2 (3.1%)        3 (1.4%)  
    INV ID CHN-2 / Dr. CHN-2 Doe     9 (12.2%)     4 (4.9%)       3 (4.7%)       16 (7.3%)  
    INV ID CHN-3 / Dr. CHN-3 Doe      5 (6.8%)     1 (1.2%)       5 (7.8%)        11 (5%)   
    INV ID CHN-4 / Dr. CHN-4 Doe      3 (4.1%)     3 (3.7%)       3 (4.7%)        9 (4.1%)  
    INV ID CHN-5 / Dr. CHN-5 Doe      4 (5.4%)     3 (3.7%)       4 (6.2%)        11 (5%)   
    INV ID CHN-6 / Dr. CHN-6 Doe      1 (1.4%)     3 (3.7%)          0            4 (1.8%)  
    INV ID CHN-7 / Dr. CHN-7 Doe         0         5 (6.2%)       1 (1.6%)        6 (2.7%)  
    INV ID CHN-8 / Dr. CHN-8 Doe      1 (1.4%)     1 (1.2%)          0            2 (0.9%)  
    INV ID CHN-9 / Dr. CHN-9 Doe      1 (1.4%)     2 (2.5%)          0            3 (1.4%)  
  PAK                                12 (9.0%)     9 (6.7%)      10 (7.6%)       31 (7.8%)  
    INV ID PAK-1 / Dr. PAK-1 Doe     2 (16.7%)    4 (44.4%)       4 (40%)        10 (32.3%) 
    INV ID PAK-11 / Dr. PAK-11 Doe   4 (33.3%)    3 (33.3%)       2 (20%)         9 (29%)   
    INV ID PAK-12 / Dr. PAK-12 Doe   2 (16.7%)        0              0            2 (6.5%)  
    INV ID PAK-13 / Dr. PAK-13 Doe    1 (8.3%)    1 (11.1%)          0            2 (6.5%)  
    INV ID PAK-14 / Dr. PAK-14 Doe    1 (8.3%)        0              0            1 (3.2%)  
    INV ID PAK-15 / Dr. PAK-15 Doe    1 (8.3%)        0              0            1 (3.2%)  
    INV ID PAK-2 / Dr. PAK-2 Doe      1 (8.3%)        0           2 (20%)         3 (9.7%)  
    INV ID PAK-4 / Dr. PAK-4 Doe         0        1 (11.1%)       1 (10%)         2 (6.5%)  
    INV ID PAK-5 / Dr. PAK-5 Doe         0            0           1 (10%)         1 (3.2%)  
  JPN                                 5 (3.7%)     4 (3.0%)       9 (6.8%)       18 (4.5%)  
    INV ID JPN-1 / Dr. JPN-1 Doe      2 (40%)      2 (50%)       1 (11.1%)       5 (27.8%)  
    INV ID JPN-11 / Dr. JPN-11 Doe       0            0          3 (33.3%)       3 (16.7%)  
    INV ID JPN-12 / Dr. JPN-12 Doe       0            0          1 (11.1%)        1 (5.6%)  
    INV ID JPN-14 / Dr. JPN-14 Doe       0         1 (25%)           0            1 (5.6%)  
    INV ID JPN-17 / Dr. JPN-17 Doe       0            0          2 (22.2%)       2 (11.1%)  
    INV ID JPN-18 / Dr. JPN-18 Doe    1 (20%)         0              0            1 (5.6%)  
    INV ID JPN-2 / Dr. JPN-2 Doe         0            0          1 (11.1%)        1 (5.6%)  
    INV ID JPN-3 / Dr. JPN-3 Doe         0         1 (25%)           0            1 (5.6%)  
    INV ID JPN-5 / Dr. JPN-5 Doe      1 (20%)         0          1 (11.1%)       2 (11.1%)  
    INV ID JPN-6 / Dr. JPN-6 Doe      1 (20%)         0              0            1 (5.6%)  
Eurasia                               5 (3.7%)     8 (6.0%)       6 (4.5%)       19 (4.8%)  
  RUS                                 5 (3.7%)     8 (6.0%)       6 (4.5%)       19 (4.8%)  
    INV ID RUS-1 / Dr. RUS-1 Doe      1 (20%)         0              0            1 (5.3%)  
    INV ID RUS-11 / Dr. RUS-11 Doe       0         2 (25%)       2 (33.3%)       4 (21.1%)  
    INV ID RUS-12 / Dr. RUS-12 Doe       0        1 (12.5%)          0            1 (5.3%)  
    INV ID RUS-13 / Dr. RUS-13 Doe    1 (20%)         0              0            1 (5.3%)  
    INV ID RUS-14 / Dr. RUS-14 Doe       0            0          1 (16.7%)        1 (5.3%)  
    INV ID RUS-16 / Dr. RUS-16 Doe    1 (20%)     1 (12.5%)          0           2 (10.5%)  
    INV ID RUS-18 / Dr. RUS-18 Doe    1 (20%)         0              0            1 (5.3%)  
    INV ID RUS-2 / Dr. RUS-2 Doe         0        1 (12.5%)          0            1 (5.3%)  
    INV ID RUS-3 / Dr. RUS-3 Doe         0            0          1 (16.7%)        1 (5.3%)  
    INV ID RUS-4 / Dr. RUS-4 Doe         0         2 (25%)       1 (16.7%)       3 (15.8%)  
    INV ID RUS-5 / Dr. RUS-5 Doe         0        1 (12.5%)          0            1 (5.3%)  
    INV ID RUS-6 / Dr. RUS-6 Doe      1 (20%)         0              0            1 (5.3%)  
    INV ID RUS-7 / Dr. RUS-7 Doe         0            0          1 (16.7%)        1 (5.3%)  
Europe                                4 (3.0%)     3 (2.2%)       2 (1.5%)        9 (2.2%)  
  GBR                                 4 (3.0%)     3 (2.2%)       2 (1.5%)        9 (2.2%)  
    INV ID GBR-1 / Dr. GBR-1 Doe      2 (50%)         0           1 (50%)        3 (33.3%)  
    INV ID GBR-11 / Dr. GBR-11 Doe       0        1 (33.3%)       1 (50%)        2 (22.2%)  
    INV ID GBR-13 / Dr. GBR-13 Doe    1 (25%)         0              0           1 (11.1%)  
    INV ID GBR-15 / Dr. GBR-15 Doe    1 (25%)         0              0           1 (11.1%)  
    INV ID GBR-17 / Dr. GBR-17 Doe       0        1 (33.3%)          0           1 (11.1%)  
    INV ID GBR-6 / Dr. GBR-6 Doe         0        1 (33.3%)          0           1 (11.1%)  
North America                        13 (9.7%)    15 (11.2%)     20 (15.2%)      48 (12.0%) 
  USA                                10 (7.5%)    13 (9.7%)      17 (12.9%)      40 (10.0%) 
    INV ID USA-1 / Dr. USA-1 Doe      1 (10%)     4 (30.8%)      5 (29.4%)        10 (25%)  
    INV ID USA-11 / Dr. USA-11 Doe    4 (40%)     2 (15.4%)      3 (17.6%)       9 (22.5%)  
    INV ID USA-12 / Dr. USA-12 Doe    1 (10%)     2 (15.4%)      3 (17.6%)        6 (15%)   
    INV ID USA-14 / Dr. USA-14 Doe    1 (10%)         0              0            1 (2.5%)  
    INV ID USA-15 / Dr. USA-15 Doe       0         1 (7.7%)       1 (5.9%)         2 (5%)   
    INV ID USA-17 / Dr. USA-17 Doe    1 (10%)      1 (7.7%)          0             2 (5%)   
    INV ID USA-19 / Dr. USA-19 Doe       0            0           1 (5.9%)        1 (2.5%)  
    INV ID USA-2 / Dr. USA-2 Doe         0            0           1 (5.9%)        1 (2.5%)  
    INV ID USA-3 / Dr. USA-3 Doe      1 (10%)         0           1 (5.9%)         2 (5%)   
    INV ID USA-4 / Dr. USA-4 Doe         0         1 (7.7%)       1 (5.9%)         2 (5%)   
    INV ID USA-5 / Dr. USA-5 Doe         0         1 (7.7%)          0            1 (2.5%)  
    INV ID USA-6 / Dr. USA-6 Doe         0         1 (7.7%)          0            1 (2.5%)  
    INV ID USA-8 / Dr. USA-8 Doe         0            0           1 (5.9%)        1 (2.5%)  
    INV ID USA-9 / Dr. USA-9 Doe      1 (10%)         0              0            1 (2.5%)  
  CAN                                 3 (2.2%)     2 (1.5%)       3 (2.3%)        8 (2.0%)  
    INV ID CAN-1 / Dr. CAN-1 Doe     1 (33.3%)     1 (50%)           0            2 (25%)   
    INV ID CAN-11 / Dr. CAN-11 Doe   1 (33.3%)        0          1 (33.3%)        2 (25%)   
    INV ID CAN-14 / Dr. CAN-14 Doe   1 (33.3%)        0              0           1 (12.5%)  
    INV ID CAN-4 / Dr. CAN-4 Doe         0         1 (50%)       1 (33.3%)        2 (25%)   
    INV ID CAN-5 / Dr. CAN-5 Doe         0            0          1 (33.3%)       1 (12.5%)  
South America                        13 (9.7%)     7 (5.2%)      10 (7.6%)       30 (7.5%)  
  BRA                                13 (9.7%)     7 (5.2%)      10 (7.6%)       30 (7.5%)  
    INV ID BRA-1 / Dr. BRA-1 Doe     4 (30.8%)    2 (28.6%)       2 (20%)        8 (26.7%)  
    INV ID BRA-11 / Dr. BRA-11 Doe   4 (30.8%)        0           4 (40%)        8 (26.7%)  
    INV ID BRA-12 / Dr. BRA-12 Doe       0        1 (14.3%)          0            1 (3.3%)  
    INV ID BRA-13 / Dr. BRA-13 Doe    1 (7.7%)        0              0            1 (3.3%)  
    INV ID BRA-14 / Dr. BRA-14 Doe    1 (7.7%)        0           1 (10%)         2 (6.7%)  
    INV ID BRA-15 / Dr. BRA-15 Doe    1 (7.7%)        0              0            1 (3.3%)  
    INV ID BRA-2 / Dr. BRA-2 Doe      1 (7.7%)    1 (14.3%)          0            2 (6.7%)  
    INV ID BRA-3 / Dr. BRA-3 Doe         0        2 (28.6%)          0            2 (6.7%)  
    INV ID BRA-4 / Dr. BRA-4 Doe         0        1 (14.3%)       1 (10%)         2 (6.7%)  
    INV ID BRA-5 / Dr. BRA-5 Doe         0            0           1 (10%)         1 (3.3%)  
    INV ID BRA-6 / Dr. BRA-6 Doe      1 (7.7%)        0              0            1 (3.3%)  
    INV ID BRA-7 / Dr. BRA-7 Doe         0            0           1 (10%)         1 (3.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
lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ARM") %>%
  add_overall_col(label = "All Patients") %>%
  split_rows_by("COUNTRY", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adsl$COUNTRY)) %>%
  summarize_row_groups() %>%
  analyze_vars("INVID_INVNAM", .stats = "count_fraction") %>%
  append_varlabels(adsl, "INVID_INVNAM", 1L)

result <- build_table(lyt, adsl) %>%
  prune_table()

result
Country                            A: Drug X    B: Placebo   C: Combination   All Patients
  Investigator Number/Name          (N=134)      (N=134)        (N=132)         (N=400)   
——————————————————————————————————————————————————————————————————————————————————————————
CHN                                74 (55.2%)   81 (60.4%)     64 (48.5%)     219 (54.8%) 
  INV ID CHN-1 / Dr. CHN-1 Doe     21 (28.4%)   20 (24.7%)      16 (25%)        57 (26%)  
  INV ID CHN-10 / Dr. CHN-10 Doe       0         1 (1.2%)          0            1 (0.5%)  
  INV ID CHN-11 / Dr. CHN-11 Doe   12 (16.2%)   20 (24.7%)      16 (25%)       48 (21.9%) 
  INV ID CHN-12 / Dr. CHN-12 Doe    4 (5.4%)     3 (3.7%)       1 (1.6%)        8 (3.7%)  
  INV ID CHN-13 / Dr. CHN-13 Doe    2 (2.7%)     6 (7.4%)          0            8 (3.7%)  
  INV ID CHN-14 / Dr. CHN-14 Doe    4 (5.4%)     2 (2.5%)       3 (4.7%)        9 (4.1%)  
  INV ID CHN-15 / Dr. CHN-15 Doe    2 (2.7%)        0           4 (6.2%)        6 (2.7%)  
  INV ID CHN-16 / Dr. CHN-16 Doe       0         3 (3.7%)       3 (4.7%)        6 (2.7%)  
  INV ID CHN-17 / Dr. CHN-17 Doe    4 (5.4%)     4 (4.9%)       3 (4.7%)        11 (5%)   
  INV ID CHN-18 / Dr. CHN-18 Doe    1 (1.4%)        0           2 (3.1%)        3 (1.4%)  
  INV ID CHN-2 / Dr. CHN-2 Doe     9 (12.2%)     4 (4.9%)       3 (4.7%)       16 (7.3%)  
  INV ID CHN-3 / Dr. CHN-3 Doe      5 (6.8%)     1 (1.2%)       5 (7.8%)        11 (5%)   
  INV ID CHN-4 / Dr. CHN-4 Doe      3 (4.1%)     3 (3.7%)       3 (4.7%)        9 (4.1%)  
  INV ID CHN-5 / Dr. CHN-5 Doe      4 (5.4%)     3 (3.7%)       4 (6.2%)        11 (5%)   
  INV ID CHN-6 / Dr. CHN-6 Doe      1 (1.4%)     3 (3.7%)          0            4 (1.8%)  
  INV ID CHN-7 / Dr. CHN-7 Doe         0         5 (6.2%)       1 (1.6%)        6 (2.7%)  
  INV ID CHN-8 / Dr. CHN-8 Doe      1 (1.4%)     1 (1.2%)          0            2 (0.9%)  
  INV ID CHN-9 / Dr. CHN-9 Doe      1 (1.4%)     2 (2.5%)          0            3 (1.4%)  
USA                                10 (7.5%)    13 (9.7%)      17 (12.9%)      40 (10.0%) 
  INV ID USA-1 / Dr. USA-1 Doe      1 (10%)     4 (30.8%)      5 (29.4%)        10 (25%)  
  INV ID USA-11 / Dr. USA-11 Doe    4 (40%)     2 (15.4%)      3 (17.6%)       9 (22.5%)  
  INV ID USA-12 / Dr. USA-12 Doe    1 (10%)     2 (15.4%)      3 (17.6%)        6 (15%)   
  INV ID USA-14 / Dr. USA-14 Doe    1 (10%)         0              0            1 (2.5%)  
  INV ID USA-15 / Dr. USA-15 Doe       0         1 (7.7%)       1 (5.9%)         2 (5%)   
  INV ID USA-17 / Dr. USA-17 Doe    1 (10%)      1 (7.7%)          0             2 (5%)   
  INV ID USA-19 / Dr. USA-19 Doe       0            0           1 (5.9%)        1 (2.5%)  
  INV ID USA-2 / Dr. USA-2 Doe         0            0           1 (5.9%)        1 (2.5%)  
  INV ID USA-3 / Dr. USA-3 Doe      1 (10%)         0           1 (5.9%)         2 (5%)   
  INV ID USA-4 / Dr. USA-4 Doe         0         1 (7.7%)       1 (5.9%)         2 (5%)   
  INV ID USA-5 / Dr. USA-5 Doe         0         1 (7.7%)          0            1 (2.5%)  
  INV ID USA-6 / Dr. USA-6 Doe         0         1 (7.7%)          0            1 (2.5%)  
  INV ID USA-8 / Dr. USA-8 Doe         0            0           1 (5.9%)        1 (2.5%)  
  INV ID USA-9 / Dr. USA-9 Doe      1 (10%)         0              0            1 (2.5%)  
BRA                                13 (9.7%)     7 (5.2%)      10 (7.6%)       30 (7.5%)  
  INV ID BRA-1 / Dr. BRA-1 Doe     4 (30.8%)    2 (28.6%)       2 (20%)        8 (26.7%)  
  INV ID BRA-11 / Dr. BRA-11 Doe   4 (30.8%)        0           4 (40%)        8 (26.7%)  
  INV ID BRA-12 / Dr. BRA-12 Doe       0        1 (14.3%)          0            1 (3.3%)  
  INV ID BRA-13 / Dr. BRA-13 Doe    1 (7.7%)        0              0            1 (3.3%)  
  INV ID BRA-14 / Dr. BRA-14 Doe    1 (7.7%)        0           1 (10%)         2 (6.7%)  
  INV ID BRA-15 / Dr. BRA-15 Doe    1 (7.7%)        0              0            1 (3.3%)  
  INV ID BRA-2 / Dr. BRA-2 Doe      1 (7.7%)    1 (14.3%)          0            2 (6.7%)  
  INV ID BRA-3 / Dr. BRA-3 Doe         0        2 (28.6%)          0            2 (6.7%)  
  INV ID BRA-4 / Dr. BRA-4 Doe         0        1 (14.3%)       1 (10%)         2 (6.7%)  
  INV ID BRA-5 / Dr. BRA-5 Doe         0            0           1 (10%)         1 (3.3%)  
  INV ID BRA-6 / Dr. BRA-6 Doe      1 (7.7%)        0              0            1 (3.3%)  
  INV ID BRA-7 / Dr. BRA-7 Doe         0            0           1 (10%)         1 (3.3%)  
PAK                                12 (9.0%)     9 (6.7%)      10 (7.6%)       31 (7.8%)  
  INV ID PAK-1 / Dr. PAK-1 Doe     2 (16.7%)    4 (44.4%)       4 (40%)        10 (32.3%) 
  INV ID PAK-11 / Dr. PAK-11 Doe   4 (33.3%)    3 (33.3%)       2 (20%)         9 (29%)   
  INV ID PAK-12 / Dr. PAK-12 Doe   2 (16.7%)        0              0            2 (6.5%)  
  INV ID PAK-13 / Dr. PAK-13 Doe    1 (8.3%)    1 (11.1%)          0            2 (6.5%)  
  INV ID PAK-14 / Dr. PAK-14 Doe    1 (8.3%)        0              0            1 (3.2%)  
  INV ID PAK-15 / Dr. PAK-15 Doe    1 (8.3%)        0              0            1 (3.2%)  
  INV ID PAK-2 / Dr. PAK-2 Doe      1 (8.3%)        0           2 (20%)         3 (9.7%)  
  INV ID PAK-4 / Dr. PAK-4 Doe         0        1 (11.1%)       1 (10%)         2 (6.5%)  
  INV ID PAK-5 / Dr. PAK-5 Doe         0            0           1 (10%)         1 (3.2%)  
NGA                                 8 (6.0%)     7 (5.2%)      11 (8.3%)       26 (6.5%)  
  INV ID NGA-1 / Dr. NGA-1 Doe     3 (37.5%)    3 (42.9%)      4 (36.4%)       10 (38.5%) 
  INV ID NGA-11 / Dr. NGA-11 Doe   1 (12.5%)    2 (28.6%)      3 (27.3%)       6 (23.1%)  
  INV ID NGA-12 / Dr. NGA-12 Doe       0        1 (14.3%)       1 (9.1%)        2 (7.7%)  
  INV ID NGA-17 / Dr. NGA-17 Doe    2 (25%)         0              0            2 (7.7%)  
  INV ID NGA-2 / Dr. NGA-2 Doe     1 (12.5%)    1 (14.3%)          0            2 (7.7%)  
  INV ID NGA-4 / Dr. NGA-4 Doe     1 (12.5%)        0           1 (9.1%)        2 (7.7%)  
  INV ID NGA-5 / Dr. NGA-5 Doe         0            0           1 (9.1%)        1 (3.8%)  
  INV ID NGA-6 / Dr. NGA-6 Doe         0            0           1 (9.1%)        1 (3.8%)  
RUS                                 5 (3.7%)     8 (6.0%)       6 (4.5%)       19 (4.8%)  
  INV ID RUS-1 / Dr. RUS-1 Doe      1 (20%)         0              0            1 (5.3%)  
  INV ID RUS-11 / Dr. RUS-11 Doe       0         2 (25%)       2 (33.3%)       4 (21.1%)  
  INV ID RUS-12 / Dr. RUS-12 Doe       0        1 (12.5%)          0            1 (5.3%)  
  INV ID RUS-13 / Dr. RUS-13 Doe    1 (20%)         0              0            1 (5.3%)  
  INV ID RUS-14 / Dr. RUS-14 Doe       0            0          1 (16.7%)        1 (5.3%)  
  INV ID RUS-16 / Dr. RUS-16 Doe    1 (20%)     1 (12.5%)          0           2 (10.5%)  
  INV ID RUS-18 / Dr. RUS-18 Doe    1 (20%)         0              0            1 (5.3%)  
  INV ID RUS-2 / Dr. RUS-2 Doe         0        1 (12.5%)          0            1 (5.3%)  
  INV ID RUS-3 / Dr. RUS-3 Doe         0            0          1 (16.7%)        1 (5.3%)  
  INV ID RUS-4 / Dr. RUS-4 Doe         0         2 (25%)       1 (16.7%)       3 (15.8%)  
  INV ID RUS-5 / Dr. RUS-5 Doe         0        1 (12.5%)          0            1 (5.3%)  
  INV ID RUS-6 / Dr. RUS-6 Doe      1 (20%)         0              0            1 (5.3%)  
  INV ID RUS-7 / Dr. RUS-7 Doe         0            0          1 (16.7%)        1 (5.3%)  
JPN                                 5 (3.7%)     4 (3.0%)       9 (6.8%)       18 (4.5%)  
  INV ID JPN-1 / Dr. JPN-1 Doe      2 (40%)      2 (50%)       1 (11.1%)       5 (27.8%)  
  INV ID JPN-11 / Dr. JPN-11 Doe       0            0          3 (33.3%)       3 (16.7%)  
  INV ID JPN-12 / Dr. JPN-12 Doe       0            0          1 (11.1%)        1 (5.6%)  
  INV ID JPN-14 / Dr. JPN-14 Doe       0         1 (25%)           0            1 (5.6%)  
  INV ID JPN-17 / Dr. JPN-17 Doe       0            0          2 (22.2%)       2 (11.1%)  
  INV ID JPN-18 / Dr. JPN-18 Doe    1 (20%)         0              0            1 (5.6%)  
  INV ID JPN-2 / Dr. JPN-2 Doe         0            0          1 (11.1%)        1 (5.6%)  
  INV ID JPN-3 / Dr. JPN-3 Doe         0         1 (25%)           0            1 (5.6%)  
  INV ID JPN-5 / Dr. JPN-5 Doe      1 (20%)         0          1 (11.1%)       2 (11.1%)  
  INV ID JPN-6 / Dr. JPN-6 Doe      1 (20%)         0              0            1 (5.6%)  
GBR                                 4 (3.0%)     3 (2.2%)       2 (1.5%)        9 (2.2%)  
  INV ID GBR-1 / Dr. GBR-1 Doe      2 (50%)         0           1 (50%)        3 (33.3%)  
  INV ID GBR-11 / Dr. GBR-11 Doe       0        1 (33.3%)       1 (50%)        2 (22.2%)  
  INV ID GBR-13 / Dr. GBR-13 Doe    1 (25%)         0              0           1 (11.1%)  
  INV ID GBR-15 / Dr. GBR-15 Doe    1 (25%)         0              0           1 (11.1%)  
  INV ID GBR-17 / Dr. GBR-17 Doe       0        1 (33.3%)          0           1 (11.1%)  
  INV ID GBR-6 / Dr. GBR-6 Doe         0        1 (33.3%)          0           1 (11.1%)  
CAN                                 3 (2.2%)     2 (1.5%)       3 (2.3%)        8 (2.0%)  
  INV ID CAN-1 / Dr. CAN-1 Doe     1 (33.3%)     1 (50%)           0            2 (25%)   
  INV ID CAN-11 / Dr. CAN-11 Doe   1 (33.3%)        0          1 (33.3%)        2 (25%)   
  INV ID CAN-14 / Dr. CAN-14 Doe   1 (33.3%)        0              0           1 (12.5%)  
  INV ID CAN-4 / Dr. CAN-4 Doe         0         1 (50%)       1 (33.3%)        2 (25%)   
  INV ID CAN-5 / Dr. CAN-5 Doe         0            0          1 (33.3%)       1 (12.5%)  
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(forcats)
library(tern)

adsl <- random.cdisc.data::cadsl

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

adsl <- adsl %>%
  mutate(
    REGION1 = droplevels(REGION1),
    COUNTRY = droplevels(COUNTRY),
    INVID_INVNAM = paste(INVID, INVNAM, sep = " / ")
  ) %>%
  mutate(
    INVID = factor(INVID),
    SITEID = factor(SITEID),
    INVNAM = factor(INVNAM),
    INVID_INVNAM = factor(INVID_INVNAM)
  ) %>%
  var_relabel(
    INVID_INVNAM = "Investigator Number/Name",
    REGION1 = "Geographic Region 1",
    COUNTRY = "Country",
    INVID = "Investigator Identifier"
  ) %>%
  arrange(REGION1, COUNTRY, INVID)

teal App

  • Preview
  • Try this using shinylive

Note that for this module application, only the variables passed into by_vars are used when row_groups is selected. Variables passed into analyze_vars are additionally used when row_groups is deselected.

Code
library(teal.modules.clinical)

## Data reproducible code
data <- teal_data()
data <- within(data, {
  library(dplyr)

  ADSL <- random.cdisc.data::cadsl

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

  adsl_labels <- col_labels(ADSL)

  ADSL <- ADSL %>%
    mutate(
      REGION1 = droplevels(REGION1),
      COUNTRY = droplevels(COUNTRY),
      INVID_INVNAM = paste(INVID, INVNAM, sep = " / ")
    ) %>%
    arrange(REGION1, COUNTRY, INVID) %>%
    mutate(
      INVID = factor(INVID),
      SITEID = factor(SITEID),
      INVNAM = factor(INVNAM),
      INVID_INVNAM = factor(INVID_INVNAM)
    )

  col_labels(ADSL) <- c(adsl_labels, c(INVID_INVNAM = "Investigator Number/Name"))
})
datanames <- "ADSL"
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
ADSL <- data[["ADSL"]]

## Setup App
app <- init(
  data = data,
  modules = modules(
    tm_t_summary_by(
      label = "Enrollment Table",
      dataname = "ADSL",
      arm_var = choices_selected(
        choices = variable_choices(ADSL, c("ARM", "ARMCD")),
        selected = "ARM"
      ),
      by_vars = choices_selected(
        choices = variable_choices(ADSL, c("REGION1", "COUNTRY", "SITEID", "INVID", "INVNAM", "INVID_INVNAM")),
        selected = c("REGION1")
      ),
      summarize_vars = choices_selected(
        choices = variable_choices(ADSL, c("REGION1", "COUNTRY", "SITEID", "INVID", "INVNAM", "INVID_INVNAM")),
        selected = c("SITEID")
      ),
      denominator = choices_selected(
        choices = c("n", "N", "omit"),
        selected = "N",
        fixed = TRUE
      ),
      useNA = "ifany",
      row_groups = TRUE
    )
  )
)

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, {
  library(dplyr)

  ADSL <- random.cdisc.data::cadsl

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

  adsl_labels <- col_labels(ADSL)

  ADSL <- ADSL %>%
    mutate(
      REGION1 = droplevels(REGION1),
      COUNTRY = droplevels(COUNTRY),
      INVID_INVNAM = paste(INVID, INVNAM, sep = " / ")
    ) %>%
    arrange(REGION1, COUNTRY, INVID) %>%
    mutate(
      INVID = factor(INVID),
      SITEID = factor(SITEID),
      INVNAM = factor(INVNAM),
      INVID_INVNAM = factor(INVID_INVNAM)
    )

  col_labels(ADSL) <- c(adsl_labels, c(INVID_INVNAM = "Investigator Number/Name"))
})
datanames <- "ADSL"
datanames(data) <- datanames
join_keys(data) <- default_cdisc_join_keys[datanames]

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

## Setup App
app <- init(
  data = data,
  modules = modules(
    tm_t_summary_by(
      label = "Enrollment Table",
      dataname = "ADSL",
      arm_var = choices_selected(
        choices = variable_choices(ADSL, c("ARM", "ARMCD")),
        selected = "ARM"
      ),
      by_vars = choices_selected(
        choices = variable_choices(ADSL, c("REGION1", "COUNTRY", "SITEID", "INVID", "INVNAM", "INVID_INVNAM")),
        selected = c("REGION1")
      ),
      summarize_vars = choices_selected(
        choices = variable_choices(ADSL, c("REGION1", "COUNTRY", "SITEID", "INVID", "INVNAM", "INVID_INVNAM")),
        selected = c("SITEID")
      ),
      denominator = choices_selected(
        choices = c("n", "N", "omit"),
        selected = "N",
        fixed = TRUE
      ),
      useNA = "ifany",
      row_groups = TRUE
    )
  )
)

shinyApp(app$ui, app$server)

Reproducibility

Timestamp

[1] "2025-07-05 17:34:14 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

RMPT06
VST01
Source Code
---
title: ENTXX
subtitle: Enrollment Variants
---

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

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

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

adsl <- random.cdisc.data::cadsl

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

adsl <- adsl %>%
  mutate(
    REGION1 = droplevels(REGION1),
    COUNTRY = droplevels(COUNTRY),
    INVID_INVNAM = paste(INVID, INVNAM, sep = " / ")
  ) %>%
  mutate(
    INVID = factor(INVID),
    SITEID = factor(SITEID),
    INVNAM = factor(INVNAM),
    INVID_INVNAM = factor(INVID_INVNAM)
  ) %>%
  var_relabel(
    INVID_INVNAM = "Investigator Number/Name",
    REGION1 = "Geographic Region 1",
    COUNTRY = "Country",
    INVID = "Investigator Identifier"
  ) %>%
  arrange(REGION1, COUNTRY, INVID)
```

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

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

## Output

::::::: panel-tabset
## ENT01 -- Enrollment by Region, <br/> Country, and Investigator Number

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

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

lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ARM") %>%
  add_overall_col(label = "All Patients") %>%
  split_rows_by("REGION1", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adsl$REGION1)) %>%
  summarize_row_groups() %>%
  split_rows_by("COUNTRY", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adsl$COUNTRY)) %>%
  summarize_row_groups() %>%
  analyze_vars("INVID", .stats = "count_fraction") %>%
  append_varlabels(adsl, "INVID", 2L)

result <- build_table(lyt, adsl) %>%
  prune_table()

result
```

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

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

## ENT01A -- Enrollment by Country <br/> and Investigator Number

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

```{r variant2, test = list(result_v2 = "result")}
lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ARM") %>%
  add_overall_col(label = "All Patients") %>%
  split_rows_by("COUNTRY", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adsl$COUNTRY)) %>%
  summarize_row_groups() %>%
  analyze_vars("INVID", .stats = "count_fraction") %>%
  append_varlabels(adsl, "INVID", 1L)

result <- build_table(lyt, adsl) %>%
  prune_table()

result
```

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

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

## ENT02 -- Enrollment by Region, Country, <br/> and Investigator Number/Name

::: {.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("ARM") %>%
  add_overall_col(label = "All Patients") %>%
  split_rows_by("REGION1", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adsl$REGION1)) %>%
  summarize_row_groups() %>%
  split_rows_by("COUNTRY", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adsl$COUNTRY)) %>%
  summarize_row_groups() %>%
  analyze_vars("INVID_INVNAM", .stats = "count_fraction") %>%
  append_varlabels(adsl, "INVID_INVNAM", 2L)

result <- build_table(lyt, adsl) %>%
  prune_table()

result
```

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

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

## ENT02A -- Enrollment by Country <br/> and Investigator Number/Name

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

```{r variant4, test = list(result_v4 = "result")}
lyt <- basic_table(show_colcounts = TRUE) %>%
  split_cols_by("ARM") %>%
  add_overall_col(label = "All Patients") %>%
  split_rows_by("COUNTRY", split_fun = split_fun, label_pos = "topleft", split_label = obj_label(adsl$COUNTRY)) %>%
  summarize_row_groups() %>%
  analyze_vars("INVID_INVNAM", .stats = "count_fraction") %>%
  append_varlabels(adsl, "INVID_INVNAM", 1L)

result <- build_table(lyt, adsl) %>%
  prune_table()

result
```

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

{{< 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

Note that for this module application, only the variables passed into `by_vars` are used when `row_groups` is selected. Variables passed into `analyze_vars` are additionally used when `row_groups` is deselected.

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

## Data reproducible code
data <- teal_data()
data <- within(data, {
  library(dplyr)

  ADSL <- random.cdisc.data::cadsl

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

  adsl_labels <- col_labels(ADSL)

  ADSL <- ADSL %>%
    mutate(
      REGION1 = droplevels(REGION1),
      COUNTRY = droplevels(COUNTRY),
      INVID_INVNAM = paste(INVID, INVNAM, sep = " / ")
    ) %>%
    arrange(REGION1, COUNTRY, INVID) %>%
    mutate(
      INVID = factor(INVID),
      SITEID = factor(SITEID),
      INVNAM = factor(INVNAM),
      INVID_INVNAM = factor(INVID_INVNAM)
    )

  col_labels(ADSL) <- c(adsl_labels, c(INVID_INVNAM = "Investigator Number/Name"))
})
datanames <- "ADSL"
datanames(data) <- datanames
join_keys(data) <- default_cdisc_join_keys[datanames]

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

## Setup App
app <- init(
  data = data,
  modules = modules(
    tm_t_summary_by(
      label = "Enrollment Table",
      dataname = "ADSL",
      arm_var = choices_selected(
        choices = variable_choices(ADSL, c("ARM", "ARMCD")),
        selected = "ARM"
      ),
      by_vars = choices_selected(
        choices = variable_choices(ADSL, c("REGION1", "COUNTRY", "SITEID", "INVID", "INVNAM", "INVID_INVNAM")),
        selected = c("REGION1")
      ),
      summarize_vars = choices_selected(
        choices = variable_choices(ADSL, c("REGION1", "COUNTRY", "SITEID", "INVID", "INVNAM", "INVID_INVNAM")),
        selected = c("SITEID")
      ),
      denominator = choices_selected(
        choices = c("n", "N", "omit"),
        selected = "N",
        fixed = TRUE
      ),
      useNA = "ifany",
      row_groups = TRUE
    )
  )
)

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