diff --git a/NEWS.md b/NEWS.md index 7191cea6b1..b57ebde05a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -15,6 +15,9 @@ * Updated `tm_t_coxreg` module after refactoring `summarize_coxreg` in `tern` to fix indentation. * Updated `tm_t_exposure` module to use new function `analyze_patients_exposure_in_cols` to fix table structure. +### Bug fixes +* Fixed bug in `tm_t_summary` and `tm_t_summary_by` preventing users from specifying the `numeric_stats` argument. + ### Miscellaneous * Package now uses `scda.2022` rather than `scda.2021` in SUGGESTS. * Removed unused argument `param` from `tm_g_pp_vitals`. diff --git a/R/tm_t_summary.R b/R/tm_t_summary.R index 3941e58165..c268e3c5c4 100644 --- a/R/tm_t_summary.R +++ b/R/tm_t_summary.R @@ -277,12 +277,7 @@ tm_t_summary <- function(label, checkmate::assert_string(parentname) checkmate::assert_string(na_level) checkmate::assert_character(numeric_stats, min.len = 1) - checkmate::assert_subset( - numeric_stats, - c("n", "mean_sd", "mean_ci", "median", "median_ci", "quantiles", "range", "geom_mean") - ) useNA <- match.arg(useNA) # nolint - numeric_stats <- match.arg(numeric_stats) denominator <- match.arg(denominator) checkmate::assert_flag(drop_arm_levels) checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) @@ -290,6 +285,8 @@ tm_t_summary <- function(label, checkmate::assert_class(basic_table_args, "basic_table_args") checkmate::assertFlag(add_total) + numeric_stats <- match.arg(numeric_stats, several.ok = TRUE) + args <- as.list(environment()) data_extract_list <- list( @@ -366,7 +363,7 @@ ui_summary <- function(id, ...) { "25% and 75%-ile" = "quantiles", "Min - Max" = "range" ), - selected = c("n", "mean_sd", "median", "range") + selected = a$numeric_stats ), shiny::radioButtons( ns("denominator"), diff --git a/R/tm_t_summary_by.R b/R/tm_t_summary_by.R index 3560b6ef89..927a05de30 100644 --- a/R/tm_t_summary_by.R +++ b/R/tm_t_summary_by.R @@ -403,11 +403,14 @@ tm_t_summary_by <- function(label, checkmate::assert_flag(parallel_vars) checkmate::assert_flag(row_groups) checkmate::assert_flag(drop_arm_levels) - numeric_stats <- match.arg(numeric_stats) + checkmate::assert_character(numeric_stats, min.len = 1) checkmate::assert_class(pre_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(post_output, classes = "shiny.tag", null.ok = TRUE) checkmate::assert_class(basic_table_args, "basic_table_args") + numeric_stats_choices <- c("n", "mean_sd", "mean_ci", "geom_mean", "median", "median_ci", "quantiles", "range") + numeric_stats <- match.arg(numeric_stats, numeric_stats_choices, several.ok = TRUE) + args <- c(as.list(environment())) data_extract_list <- list( @@ -522,7 +525,7 @@ ui_summary_by <- function(id, ...) { "25% and 75%-ile" = "quantiles", "Min - Max" = "range" ), - selected = c("n", "mean_sd", "median", "range") + selected = a$numeric_stats ), if (a$dataname == a$parentname) { shinyjs::hidden(