Skip to content

Commit f8b037e

Browse files
mattkorbgithub-actions[bot]ayogasekaramedelarua
authored
195 new table table 36 (#208)
* Add make_table_36 * Add tests for make_table_36 * Addd quarto page for make_table_36 * [skip actions] Restyle files * Update NEWS file * Remove scda from table 22 * Solve lintr marks for table 22 * empty commit * Update WORDLIST --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Abinaya Yogasekaram <[email protected]> Co-authored-by: ayogasekaram <[email protected]> Co-authored-by: Emily de la Rua <[email protected]>
1 parent 33a5664 commit f8b037e

11 files changed

+666
-3
lines changed

NAMESPACE

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export(make_table_32_gtsum)
3333
export(make_table_33)
3434
export(make_table_34)
3535
export(make_table_35)
36+
export(make_table_36)
3637
export(make_table_38)
3738
export(split_cols_by_arm)
3839
import(Tplyr)

NEWS.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* Added new functions for creating standard FDA tables: `make_table_02`, `make_table_03`, `make_table_04`, `make_table_05`,
55
`make_table_06`, `make_table_07`, `make_table_08`, `make_table_09`, `make_table_10`, `make_table_11`, `make_table_12`,
66
`make_table_13`, `make_table_14`, `make_table_15`, `make_table_16`, `make_table_17`, `make_table_18`, `make_table_20`,
7-
`make_table_21`, `make_table_22`, `make_table_32`, `make_table_33`, `make_table_34`, `make_table_35`.
7+
`make_table_21`, `make_table_22`, `make_table_32`, `make_table_33`, `make_table_34`, `make_table_35`, `make_table_36`.
88
* Added new functions for creating standard FDA figures: `make_fig_01`, `make_fig_02`, `make_fig_14`.
99
* Added helper functions used within table functions:
1010
* `basic_table_annot` for adding basic table annotations (titles, footnotes, column counts).

R/fda-table_36.R

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#' Table 36. Patients With Adverse Events by System Organ Class and Preferred Term, Safety
2+
#' Population, Pooled Analysis (or Trial X)
3+
#'
4+
#' @details
5+
#' * `adae` must contain the variables specified by `id_var`, `arm_var`, `saffl_var`, `soc_var`,
6+
#' and `pref_var`.
7+
#' * If specified, `alt_counts_df` must contain the variables specified by `arm_var`, `id_var`, and `saffl_var`.
8+
#' * Columns are split by arm. Overall population column is excluded by default (see `lbl_overall` argument).
9+
#' * Numbers in table represent the absolute numbers of patients and fraction of `N`.
10+
#' * All-zero rows are removed by default (see `prune_0` argument).
11+
#'
12+
#' @inheritParams argument_convention
13+
#'
14+
#' @return
15+
#' * `make_table_36` returns an `rtables` table object.
16+
#'
17+
#' @examples
18+
#' adsl <- random.cdisc.data::cadsl
19+
#' adae <- random.cdisc.data::cadae
20+
#'
21+
#' tbl <- make_table_35(adae = adae, alt_counts_df = adsl)
22+
#' tbl
23+
#'
24+
#' @export
25+
make_table_36 <- function(
26+
adae,
27+
alt_counts_df = NULL,
28+
show_colcounts = TRUE,
29+
id_var = "USUBJID",
30+
arm_var = "ARM",
31+
saffl_var = "SAFFL",
32+
soc_var = "AESOC",
33+
pref_var = "AEDECOD",
34+
lbl_soc_var = formatters::var_labels(adae, fill = TRUE)[soc_var],
35+
lbl_overall = NULL,
36+
risk_diff = NULL,
37+
prune_0 = FALSE,
38+
annotations = NULL) {
39+
adae <- adae %>%
40+
filter(.data[[saffl_var]] == "Y") %>%
41+
df_explicit_na()
42+
43+
alt_counts_df <- alt_counts_df_preproc(
44+
alt_counts_df,
45+
id_var,
46+
arm_var,
47+
saffl_var
48+
)
49+
50+
lyt <- basic_table_annot(show_colcounts, annotations) %>%
51+
split_cols_by_arm(arm_var, lbl_overall, risk_diff) %>%
52+
split_rows_by(
53+
soc_var,
54+
label_pos = "topleft",
55+
split_label = lbl_soc_var
56+
) %>%
57+
summarize_num_patients(
58+
var = id_var,
59+
riskdiff = !is.null(risk_diff),
60+
.stats = "unique",
61+
.labels = c(unique = NULL)
62+
) %>%
63+
count_occurrences(
64+
vars = pref_var,
65+
drop = FALSE,
66+
riskdiff = !is.null(risk_diff)
67+
)
68+
69+
tbl <- build_table(lyt, df = adae, alt_counts_df = alt_counts_df)
70+
if (prune_0) tbl <- prune_table(tbl)
71+
72+
tbl
73+
}

_quarto.yml

+1
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ website:
103103
- quarto/table-templates/template-table_33.qmd
104104
- quarto/table-templates/template-table_34.qmd
105105
- quarto/table-templates/template-table_35.qmd
106+
- quarto/table-templates/template-table_36.qmd
106107
- quarto/figure-templates/template-fig_01.qmd
107108
- quarto/figure-templates/template-fig_02.qmd
108109
- quarto/figure-templates/template-fig_14.qmd

inst/WORDLIST

+17
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,29 @@ ADEX
33
ADSL
44
ADSUB
55
ADVS
6+
AE
7+
ARD
8+
Abinaya
9+
Assuied
610
CDISC
11+
CDISC's
712
FMQ
13+
Huan
814
Hypotension
15+
Knizia
16+
Korbinian
17+
Koujin
918
Pharmaverse
1019
Postbaseline
1120
Pre
21+
Rua
1222
TLGs
23+
Yichen
24+
Yogasekaram
25+
Yoshito
26+
Yuye
1327
datetime
28+
de
29+
ncol
30+
pharmaverse
1431
pre

man/make_table_36.Rd

+92
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

quarto/index-templates.qmd

+2
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ title: Template Library Index
5555

5656
- [FDA Table 38 -- Patients With Adverse Events by System Organ Class, FDA Medical Query (Broad) and Preferred Term, Safety Population, Pooled Analysis (or Trial X)](table-templates/template-table_38.qmd)
5757

58+
- [FDA Table 36 -- Patients With Adverse Events1 by System Organ Class and Preferred Term, Safety Population, Pooled Analysis (or Trial X)](table-templates/template-table_35.qmd)
59+
5860

5961
------------------------------------------------------------------------
6062

0 commit comments

Comments
 (0)