## ----setup, include=FALSE----------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) library(tplyr2) library(knitr) ## ----simple_count------------------------------------------------------------- spec <- tplyr_spec( cols = "TRT01P", layers = tplyr_layers( group_count("DCDECOD") ) ) result <- tplyr_build(spec, tplyr_adsl) kable(result[, c("rowlabel1", "res1", "res2", "res3")]) ## ----total_group-------------------------------------------------------------- spec <- tplyr_spec( cols = "TRT01P", total_groups = list(total_group("TRT01P", label = "Total")), layers = tplyr_layers( group_count("DCDECOD") ) ) result <- tplyr_build(spec, tplyr_adsl) kable(result[, c("rowlabel1", "res1", "res2", "res3", "res4")]) ## ----custom_group------------------------------------------------------------- spec <- tplyr_spec( cols = "TRT01P", custom_groups = list( custom_group("TRT01P", "Treated" = c("Xanomeline High Dose", "Xanomeline Low Dose") ) ), layers = tplyr_layers( group_count("DCDECOD") ) ) result <- tplyr_build(spec, tplyr_adsl) kable(result[, c("rowlabel1", "res1", "res2", "res3", "res4")]) ## ----format_strings----------------------------------------------------------- spec <- tplyr_spec( cols = "TRT01P", layers = tplyr_layers( group_count("DCDECOD", settings = layer_settings( format_strings = list( n_counts = f_str("xxx (xxx.x%)", "n", "pct") ) ) ) ) ) result <- tplyr_build(spec, tplyr_adsl) kable(result[, c("rowlabel1", "res1", "res2", "res3")]) ## ----total_row---------------------------------------------------------------- spec <- tplyr_spec( cols = "TRT01P", layers = tplyr_layers( group_count("DCDECOD", settings = layer_settings( total_row = TRUE, total_row_label = "Overall Total" ) ) ) ) result <- tplyr_build(spec, tplyr_adsl) kable(result[, c("rowlabel1", "res1", "res2", "res3")]) ## ----pop_data_compare--------------------------------------------------------- # WITHOUT population data: denominator = subjects present in ADAE spec_no_pop <- tplyr_spec( cols = "TRTA", layers = tplyr_layers( group_count("AEDECOD", settings = layer_settings(distinct_by = "USUBJID")) ) ) res_no_pop <- tplyr_build(spec_no_pop, tplyr_adae) # WITH population data: denominator = full safety population from ADSL spec_pop <- tplyr_spec( cols = "TRTA", pop_data = pop_data(cols = c("TRTA" = "TRT01A")), layers = tplyr_layers( group_count("AEDECOD", settings = layer_settings(distinct_by = "USUBJID")) ) ) res_pop <- tplyr_build(spec_pop, tplyr_adae, pop_data = tplyr_adsl) # Column Ns: subjects-with-events vs. the true population sapply(c("res1", "res2", "res3"), function(c) attr(res_no_pop[[c]], "label")) sapply(c("res1", "res2", "res3"), function(c) attr(res_pop[[c]], "label")) ## ----distinct_counts---------------------------------------------------------- spec <- tplyr_spec( cols = "TRTA", pop_data = pop_data(cols = c("TRTA" = "TRT01A")), layers = tplyr_layers( group_count("AEDECOD", settings = layer_settings( distinct_by = "USUBJID", format_strings = list( n_counts = f_str("xxx (xx.x%) [xxx]", "distinct_n", "distinct_pct", "n") ) ) ) ) ) result <- tplyr_build(spec, tplyr_adae, pop_data = tplyr_adsl) kable(head(result[, c("rowlabel1", "res1", "res2", "res3")], 10)) ## ----stat_columns------------------------------------------------------------- spec <- tplyr_spec( cols = "TRTA", pop_data = pop_data(cols = c("TRTA" = "TRT01A")), layers = tplyr_layers( group_count("AEDECOD", settings = layer_settings( distinct_by = "USUBJID", stat_columns = list( "n (%)" = f_str("xxx (xx.x%)", "distinct_n", "distinct_pct"), "E" = f_str("xxx", "n") ) ) ) ) ) result <- tplyr_build(spec, tplyr_adae, pop_data = tplyr_adsl) kable(head(result[, c("rowlabel1", "res1", "res2", "res3", "res4")], 10)) ## ----stat_columns_labels------------------------------------------------------ attr(result$res1, "label") attr(result$res2, "label") ## ----nested_basic------------------------------------------------------------- spec <- tplyr_spec( cols = "TRTA", pop_data = pop_data(cols = c("TRTA" = "TRT01A")), layers = tplyr_layers( group_count(c("AEBODSYS", "AEDECOD"), settings = layer_settings( distinct_by = "USUBJID", format_strings = list( n_counts = f_str("xxx (xx.x%)", "distinct_n", "distinct_pct") ) ) ) ) ) result <- tplyr_build(spec, tplyr_adae, pop_data = tplyr_adsl) kable(head(result[, c("rowlabel1", "rowlabel2", "res1", "res2", "res3")], 15)) ## ----nested_collapsed--------------------------------------------------------- collapsed <- collapse_row_labels(result, "rowlabel1", "rowlabel2", indent = " ") kable(head(collapsed[, c("row_label", "res1", "res2", "res3")], 15)) ## ----nested_nest-------------------------------------------------------------- nested <- collapse_row_labels(result, nest = TRUE, indent = " ") kable(head(nested[, c("row_label", "res1", "res2", "res3")], 15)) ## ----nested_total------------------------------------------------------------- spec <- tplyr_spec( cols = "TRTA", pop_data = pop_data(cols = c("TRTA" = "TRT01A")), layers = tplyr_layers( group_count(c("AEBODSYS", "AEDECOD"), settings = layer_settings( distinct_by = "USUBJID", total_row = TRUE, total_row_label = "Any adverse event", format_strings = list( n_counts = f_str("xxx (xx.x%)", "distinct_n", "distinct_pct") ) ) ) ) ) result <- tplyr_build(spec, tplyr_adae, pop_data = tplyr_adsl) collapsed <- collapse_row_labels(result, "rowlabel1", "rowlabel2", indent = " ") kable(head(collapsed[, c("row_label", "res1", "res2", "res3")], 15))