Estimation of Proportions per Level of Factor
Source:R/estimate_multinomial_rsp.R
estimate_multinomial_rsp.Rd
Estimate the proportion along with confidence interval of a proportion regarding the level of a factor.
Usage
s_length_proportion(x, .N_col, ...)
a_length_proportion(x, .N_col, ...)
estimate_multinomial_response(
lyt,
var,
...,
show_labels = "hidden",
table_names = var,
.stats = "prop_ci",
.formats = NULL,
.labels = NULL,
.indent_mods = NULL
)
Arguments
- x
(
numeric
)
vector of numbers we want to analyze.- .N_col
(
count
)
row-wise N (row group count) for the group of observations being analyzed (i.e. with no column-based subsetting) that is passed byrtables
.- ...
additional arguments for the lower level functions.
- lyt
(
layout
)
input layout where analyses will be added to.- var
(
string
)
single variable name that is passed byrtables
when requested by a statistics function.- show_labels
(
string
)
label visibility: one of "default", "visible" and "hidden".- table_names
(
character
)
this can be customized in case that the samevars
are analyzed multiple times, to avoid warnings fromrtables
.- .stats
(
character
)
statistics to select for the table.- .formats
(named
character
orlist
)
formats for the statistics.- .labels
(named
character
)
labels for the statistics (without indent).- .indent_mods
(named
integer
)
indent modifiers for the labels.
Value
s_length_proportion()
returns statistics froms_proportion()
.
a_length_proportion()
returns the corresponding list with formattedrtables::CellValue()
.
estimate_multinomial_response()
returns a layout object suitable for passing to further layouting functions, or tortables::build_table()
. Adding this function to anrtable
layout will add formatted rows containing the statistics froms_length_proportion()
to the table layout.
Functions
s_length_proportion()
: Statistics function which feeds the length ofx
as number of successes, and.N_col
as total number of successes and failures intos_proportion()
.a_length_proportion()
: Formatted analysis function which is used asafun
inestimate_multinomial_response()
.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()
.
See also
Relevant description function d_onco_rsp_label()
.
Examples
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 row_label
#> 1 n_prop 10 (10.0%) 0 Responders
#> 2 prop_ci (3.62, 16.38) 0 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 row_label
#> 1 n_prop 0 (0.0%) 0 Responders
#> 2 prop_ci (0.00, 0.50) 0 95% CI (Wald, with correction)
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)
html <- as_html(tbl)
html
#> <div class="rtables-all-parts-block rtables-container">
#> <table class="table table-condensed table-hover">
#> <tr>
#> <th style="white-space:pre;"></th>
#> <th class="text-center">A</th>
#> <th class="text-center">B</th>
#> <th class="text-center">C</th>
#> </tr>
#> <tr>
#> <td class="text-left">Complete Response (CR)</td>
#> <td class="text-center">0 (0.0%)</td>
#> <td class="text-center">2 (50.0%)</td>
#> <td class="text-center">4 (100.0%)</td>
#> </tr>
#> <tr>
#> <td class="text-left" style="padding-left: 3ch">95% CI (Wald, with correction)</td>
#> <td class="text-center">(0.00, 12.50)</td>
#> <td class="text-center">(0.00, 100.00)</td>
#> <td class="text-center">(87.50, 100.00)</td>
#> </tr>
#> <tr>
#> <td class="text-left">Partial Response (PR)</td>
#> <td class="text-center">4 (100.0%)</td>
#> <td class="text-center">2 (50.0%)</td>
#> <td class="text-center">0 (0.0%)</td>
#> </tr>
#> <tr>
#> <td class="text-left" style="padding-left: 3ch">95% CI (Wald, with correction)</td>
#> <td class="text-center">(87.50, 100.00)</td>
#> <td class="text-center">(0.00, 100.00)</td>
#> <td class="text-center">(0.00, 12.50)</td>
#> </tr>
#> <caption style="caption-side:top;"><div class="rtables-titles-block rtables-container">
#> <div class="rtables-main-titles-block rtables-container">
#> <p class="rtables-main-title"></p>
#> </div>
#> <div class="rtables-subtitles-block rtables-container"></div>
#> </div>
#> </caption>
#> </table>
#> <div class="rtables-footers-block rtables-container"></div>
#> </div>
if (FALSE) {
Viewer(html)
}