The module produces an exposure table for risk management plan.
Usage
tm_t_exposure(
label,
dataname,
parentname = ifelse(inherits(col_by_var, "data_extract_spec"),
teal.transform::datanames_input(col_by_var), "ADSL"),
row_by_var,
col_by_var,
paramcd = teal.transform::choices_selected(choices =
teal.transform::value_choices(dataname, "PARAMCD", "PARAM"), selected = "TDURD"),
paramcd_label = "PARAM",
id_var = teal.transform::choices_selected(teal.transform::variable_choices(dataname,
subset = "USUBJID"), selected = "USUBJID", fixed = TRUE),
parcat,
aval_var = teal.transform::choices_selected(teal.transform::variable_choices(dataname,
subset = "AVAL"), selected = "AVAL", fixed = TRUE),
avalu_var = teal.transform::choices_selected(teal.transform::variable_choices(dataname,
subset = "AVALU"), selected = "AVALU", fixed = TRUE),
add_total,
total_label = default_total_label(),
add_total_row = TRUE,
total_row_label = "Total number of patients and patient time*",
na_level = default_na_str(),
pre_output = NULL,
post_output = NULL,
basic_table_args = teal.widgets::basic_table_args()
)
Arguments
- label
(
character
)
menu item label of the module in the teal app.- dataname
(
character
)
analysis data used in teal module.- parentname
(
character
)
parent analysis data used in teal module, usually this refers toADSL
.- row_by_var
(
teal.transform::choices_selected()
)
object with all available choices and preselected option for variable names that can be used to split rows.- col_by_var
(
teal.transform::choices_selected()
)
object with all available choices and preselected option for variable names that can be used to split columns.- paramcd
(
teal.transform::choices_selected()
)
object with all available choices and preselected option for the parameter code variable fromdataname
.- paramcd_label
(
character
)
the column from the dataset where the value will be used to label the argumentparamcd
.- id_var
(
teal.transform::choices_selected()
)
object specifying the variable name for subject id.- parcat
(
teal.transform::choices_selected()
)
object with all available choices and preselected option for parameter category values.- aval_var
(
teal.transform::choices_selected()
)
object with all available choices and pre-selected option for the analysis variable.- avalu_var
(
teal.transform::choices_selected()
)
object with all available choices and preselected option for the analysis unit variable.- add_total
(
logical
)
whether to include column with total number of patients.- total_label
(
string
)
string to display as total column/row label if column/row is enabled (seeadd_total
). Defaults to"All Patients"
. To set a new defaulttotal_label
to apply in all modules, runset_default_total_label("new_default")
.- add_total_row
(
flag
)
whether a "total" level should be added after the others which includes all the levels that constitute the split. A custom label can be set for this level via thetotal_row_label
argument.- total_row_label
(
character
)
string to display as total row label if row is enabled (seeadd_total_row
).- na_level
(
string
)
used to replace allNA
or empty values in character or factor variables in the data. Defaults to"<Missing>"
. To set a defaultna_level
to apply in all modules, runset_default_na_str("new_default")
.- pre_output
optional, (
shiny.tag
)
with text placed before the output to put the output into context. For example a title.- post_output
optional, (
shiny.tag
)
with text placed after the output to put the output into context. For example theshiny::helpText()
elements are useful.- basic_table_args
optional, (
basic_table_args
)
object created byteal.widgets::basic_table_args()
with settings for the module table. The argument is merged with optionteal.basic_table_args
and with default module arguments (hard coded in the module body). For more details, see the vignette:vignette("custom-basic-table-arguments", package = "teal.widgets")
.
See also
The TLG Catalog where additional example apps implementing this module can be found.
Examples
library(dplyr)
library(formatters)
data <- teal_data()
data <- within(data, {
ADSL <- tmc_ex_adsl
ADEX <- tmc_ex_adex
set.seed(1, kind = "Mersenne-Twister")
labels <- var_labels(ADEX, fill = FALSE)
ADEX <- ADEX %>%
distinct(USUBJID, .keep_all = TRUE) %>%
mutate(
PARAMCD = "TDURD",
PARAM = "Overall duration (days)",
AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),
AVALU = "Days"
) %>%
bind_rows(ADEX)
var_labels(ADEX) <- labels
})
datanames <- c("ADSL", "ADEX")
datanames(data) <- datanames
join_keys(data) <- default_cdisc_join_keys[datanames]
app <- init(
data = data,
modules = modules(
tm_t_exposure(
label = "Duration of Exposure Table",
dataname = "ADEX",
paramcd = choices_selected(
choices = value_choices(data[["ADEX"]], "PARAMCD", "PARAM"),
selected = "TDURD"
),
col_by_var = choices_selected(
choices = variable_choices(data[["ADEX"]], subset = c("SEX", "ARM")),
selected = "SEX"
),
row_by_var = choices_selected(
choices = variable_choices(data[["ADEX"]], subset = c("RACE", "REGION1", "STRATA1", "SEX")),
selected = "RACE"
),
parcat = choices_selected(
choices = value_choices(data[["ADEX"]], "PARCAT2"),
selected = "Drug A"
),
add_total = FALSE
)
),
filter = teal_slices(teal_slice("ADSL", "SAFFL", selected = "Y"))
)
#> [INFO] 2024-02-26 01:42:42.9856 pid:1518 token:[] teal.modules.clinical Initializing tm_t_exposure
if (interactive()) {
shinyApp(app$ui, app$server)
}