This module produces a binary outcome response summary
table, with the option to match the STREAM template RSPT01.
Usage
tm_t_binary_outcome(
label,
dataname,
parentname = ifelse(test = inherits(arm_var, "data_extract_spec"), yes =
teal.transform::datanames_input(arm_var), no = "ADSL"),
arm_var,
arm_ref_comp = NULL,
paramcd,
strata_var,
aval_var = teal.transform::choices_selected(choices =
teal.transform::variable_choices(dataname, c("AVALC", "SEX")), selected = "AVALC",
fixed = FALSE),
conf_level = teal.transform::choices_selected(c(0.95, 0.9, 0.8), 0.95, keep_order =
TRUE),
default_responses = c("CR", "PR", "Y", "Complete Response (CR)",
"Partial Response (PR)", "M"),
rsp_table = FALSE,
add_total = FALSE,
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.- arm_var
(
choices_selectedordata_extract_spec)
object with all available choices and preselected option for variable names that can be used asarm_var. It defines the grouping variable(s) in the results table. If there are two elements selected forarm_var, second variable will be nested under the first variable.- arm_ref_comp
optional, (
list)
If specified it must be a named list with each element corresponding to an arm variable inADSLand the element must be another list (possibly with delayedteal.transform::variable_choices()or delayedteal.transform::value_choices()with the elements namedrefandcompthat the defined the default reference and comparison arms when the arm variable is changed.- paramcd
(
choices_selectedordata_extract_spec)
variable value designating the studied parameter.- strata_var
(
choices_selectedordata_extract_spec)
names of the variables for stratified analysis.- aval_var
(
choices_selectedordata_extract_spec)
object with all available choices and preselected option for the analysis variable.- conf_level
(
choices_selected)
object with all available choices and preselected option for the confidence level, each within range of (0, 1).- default_responses
(
listorcharacter)
defines the default codes for the response variable in the module per value ofparamcd. A passed vector is broadcasted for allparamcdvalues. A passedlistmust be named and contain arrays, each name corresponding to a single value ofparamcd. Each array may contain default response values or named arraysrspof default selected response values andlevelsof default level choices.- rsp_table
(
logical)
should the initial set-up of the module match the STREAM templaterspt01. (default FALSE)- add_total
(
logical)
whether to include column with total number of patients.- 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_argsand with default module arguments (hard coded in the module body).For more details, see the vignette:
vignette("custom-basic-table-arguments", package = "teal.widgets").
Value
an teal::module() object
Details
Additional standard UI inputs include responders,
ref_arm, comp_arm and combine_comp_arms (default FALSE)
Default values of the inputs var_arm, ref_arm and
comp_arm are set to NULL, and updated accordingly based on selection
of paramcd and var_arm
This display order of response categories in partitioned statistics section
inherits the factor level order of the source data. Use
base::factor() and its levels argument to manipulate
the source data in order to include/exclude or re-categorize response
categories and arrange the display order. If response categories are
"Missing" or "Not Evaluable (NE)" or "Missing or unevaluable", 95\
confidence interval will not be calculated.
Reference arms automatically combined if multiple arms selected as reference group.
Examples
library(dplyr)
library(scda)
synthetic_cdisc_data_latest <- synthetic_cdisc_data("latest")
ADSL <- synthetic_cdisc_data_latest$adsl
ADRS <- synthetic_cdisc_data_latest$adrs %>%
mutate(AVALC = d_onco_rsp_label(AVALC)) %>%
filter(PARAMCD != "OVRINV" | AVISIT == "FOLLOW UP")
arm_ref_comp <- list(
ARMCD = list(ref = "ARM B", comp = c("ARM A", "ARM C")),
ARM = list(ref = "B: Placebo", comp = c("A: Drug X", "C: Combination"))
)
app <- init(
data = cdisc_data(
cdisc_dataset("ADSL", ADSL),
cdisc_dataset("ADRS", ADRS),
code =
"synthetic_cdisc_data_latest <- synthetic_cdisc_data('latest')
ADSL <- synthetic_cdisc_data_latest$adsl
ADRS <- synthetic_cdisc_data_latest$adrs %>%
mutate(AVALC = d_onco_rsp_label(AVALC)) %>%
filter(PARAMCD != 'OVRINV' | AVISIT == 'FOLLOW UP')"
),
modules = modules(
tm_t_binary_outcome(
label = "Responders",
dataname = "ADRS",
paramcd = choices_selected(
choices = value_choices(ADRS, "PARAMCD", "PARAM"),
selected = "BESRSPI"
),
arm_var = choices_selected(
choices = variable_choices(ADRS, c("ARM", "ARMCD", "ACTARMCD")),
selected = "ARM"
),
arm_ref_comp = arm_ref_comp,
strata_var = choices_selected(
choices = variable_choices(ADRS, c("SEX", "BMRKR2", "RACE")),
select = "RACE"
),
default_responses = list(
BESRSPI = list(
rsp = c("Complete Response (CR)", "Partial Response (PR)"),
levels = c(
"Complete Response (CR)", "Partial Response (PR)",
"Stable Disease (SD)", "Progressive Disease (PD)"
)
),
INVET = list(
rsp = c("Stable Disease (SD)", "Not Evaluable (NE)"),
levels = c(
"Complete Response (CR)", "Not Evaluable (NE)", "Partial Response (PR)",
"Progressive Disease (PD)", "Stable Disease (SD)"
)
),
OVRINV = list(
rsp = c("Progressive Disease (PD)", "Stable Disease (SD)"),
levels = c("Progressive Disease (PD)", "Stable Disease (SD)", "Not Evaluable (NE)")
)
)
)
)
)
#> [INFO] 2022-10-14 09:10:26.3373 pid:3139 token:[] teal.modules.clinical Initializing tm_t_binary_outcome
if (FALSE) {
shinyApp(app$ui, app$server)
}