
Estimate proportions of each level of a variable
Source:R/estimate_multinomial_rsp.R
estimate_multinomial_rsp.RdThe analyze & summarize function estimate_multinomial_response() creates a layout element to estimate the
proportion and proportion confidence interval for each level of a factor variable. The primary analysis variable,
var, should be a factor variable, the values of which will be used as labels within the output table.
Usage
estimate_multinomial_response(
lyt,
var,
na_str = default_na_str(),
nested = TRUE,
...,
show_labels = "hidden",
table_names = var,
.stats = "prop_ci",
.stat_names = NULL,
.formats = list(prop_ci = "(xx.xx, xx.xx)"),
.labels = NULL,
.indent_mods = NULL
)
s_length_proportion(x, ..., .N_col)
a_length_proportion(
x,
...,
.stats = NULL,
.stat_names = NULL,
.formats = NULL,
.labels = NULL,
.indent_mods = NULL
)Arguments
- lyt
(
PreDataTableLayouts)
layout that analyses will be added to.- var
(
string)
single variable name that is passed byrtableswhen requested by a statistics function.- na_str
(
string)
string used to replace allNAor empty values in the output.- nested
(
flag)
whether this layout instruction should be applied within the existing layout structure _if possible (TRUE, the default) or as a new top-level element (FALSE). Ignored if it would nest a split. underneath analyses, which is not allowed.- ...
additional arguments for the lower level functions.
- show_labels
(
string)
label visibility: one of "default", "visible" and "hidden".- table_names
(
character)
this can be customized in the case that the samevarsare analyzed multiple times, to avoid warnings fromrtables.- .stats
-
(
character)
statistics to select for the table.Options are:
'n_prop', 'prop_ci' - .stat_names
(
character)
names of the statistics that are passed directly to name single statistics (.stats). This option is visible when producingrtables::as_result_df()withmake_ard = TRUE.- .formats
(named
characterorlist)
formats for the statistics. See Details inanalyze_varsfor more information on the"auto"setting.- .labels
(named
character)
labels for the statistics (without indent).- .indent_mods
(named
integer)
indent modifiers for the labels. Defaults to 0, which corresponds to the unmodified default behavior. Can be negative.- x
(
numeric)
vector of numbers we want to analyze.- .N_col
(
integer(1))
column-wise N (column count) for the full column being analyzed that is typically passed byrtables.
Value
estimate_multinomial_response()returns a layout object suitable for passing to further layouting functions, or tortables::build_table(). Adding this function to anrtablelayout will add formatted rows containing the statistics froms_length_proportion()to the table layout.
s_length_proportion()returns statistics froms_proportion().
a_length_proportion()returns the corresponding list with formattedrtables::CellValue().
Functions
estimate_multinomial_response(): Layout-creating function which can take statistics function arguments and additional format arguments. This function is a wrapper forrtables::analyze()andrtables::summarize_row_groups().s_length_proportion(): Statistics function which feeds the length ofxas number of successes, and.N_colas total number of successes and failures intos_proportion().a_length_proportion(): Formatted analysis function which is used asafuninestimate_multinomial_response().
See also
Relevant description function d_onco_rsp_label().
Examples
library(dplyr)
# Use of the layout creating function.
dta_test <- data.frame(
USUBJID = paste0("S", 1:12),
ARM = factor(rep(LETTERS[1:3], each = 4)),
AVAL = c(A = c(1, 1, 1, 1), B = c(0, 0, 1, 1), C = c(0, 0, 0, 0))
) %>% mutate(
AVALC = factor(AVAL,
levels = c(0, 1),
labels = c("Complete Response (CR)", "Partial Response (PR)")
)
)
lyt <- basic_table() %>%
split_cols_by("ARM") %>%
estimate_multinomial_response(var = "AVALC")
tbl <- build_table(lyt, dta_test)
tbl
#> A B C
#> —————————————————————————————————————————————————————————————————————————————————————
#> Complete Response (CR) 0 (0.0%) 2 (50.0%) 4 (100.0%)
#> 95% CI (Wald, with correction) (0.00, 12.50) (0.00, 100.00) (87.50, 100.00)
#> Partial Response (PR) 4 (100.0%) 2 (50.0%) 0 (0.0%)
#> 95% CI (Wald, with correction) (87.50, 100.00) (0.00, 100.00) (0.00, 12.50)
s_length_proportion(rep("CR", 10), .N_col = 100)
#> $n_prop
#> [1] 10.0 0.1
#> attr(,"label")
#> [1] "Responders"
#>
#> $prop_ci
#> [1] 3.620108 16.379892
#> attr(,"label")
#> [1] "95% CI (Wald, with correction)"
#>
s_length_proportion(factor(character(0)), .N_col = 100)
#> $n_prop
#> [1] 0 0
#> attr(,"label")
#> [1] "Responders"
#>
#> $prop_ci
#> [1] 0.0 0.5
#> attr(,"label")
#> [1] "95% CI (Wald, with correction)"
#>
a_length_proportion(rep("CR", 10), .N_col = 100)
#> RowsVerticalSection (in_rows) object print method:
#> ----------------------------
#> row_name formatted_cell indent_mod
#> 1 Responders 10 (10.0%) 0
#> 2 95% CI (Wald, with correction) (3.6, 16.4) 0
#> row_label
#> 1 Responders
#> 2 95% CI (Wald, with correction)
a_length_proportion(factor(character(0)), .N_col = 100)
#> RowsVerticalSection (in_rows) object print method:
#> ----------------------------
#> row_name formatted_cell indent_mod
#> 1 Responders 0 (0.0%) 0
#> 2 95% CI (Wald, with correction) (0.0, 0.5) 0
#> row_label
#> 1 Responders
#> 2 95% CI (Wald, with correction)