This helper, to be used with tbl_custom_summary()
, creates a function
computing a proportion and its confidence interval.
Usage
proportion_summary(
variable,
value,
weights = NULL,
na.rm = TRUE,
conf.level = 0.95,
method = c("wilson", "wilson.no.correct", "wald", "wald.no.correct", "exact",
"agresti.coull", "jeffreys")
)
Arguments
- variable
(
string
)
String indicating the name of the variable from which the proportion will be computed.- value
(
scalar
)
Value (or list of values) ofvariable
to be taken into account in the numerator.- weights
(
string
)
Optional string indicating the name of a frequency weighting variable. IfNULL
, all observations will be assumed to have a weight equal to1
.- na.rm
(scalar
logical
)
Should missing values be removed before computing the proportion? (default isTRUE
)- conf.level
(scalar
numeric
)
Confidence level for the returned confidence interval. Must be strictly greater than 0 and less than 1. Default to 0.95, which corresponds to a 95 percent confidence interval.- method
(
string
)
Confidence interval method. Must be one ofc("wilson", "wilson.no.correct", "wald", "wald.no.correct", "exact", "agresti.coull", "jeffreys")
. Seeadd_ci()
for details.
Details
Computed statistics:
{n}
numerator, number of observations equal tovalues
{N}
denominator, number of observations{prop}
proportion, i.e.n/N
{conf.low}
lower confidence interval{conf.high}
upper confidence interval
Methods c("wilson", "wilson.no.correct")
are calculated with
stats::prop.test()
(with correct = c(TRUE, FALSE)
). The default method,
"wilson"
, includes the Yates continuity correction.
Methods c("exact", "asymptotic")
are calculated with Hmisc::binconf()
and the corresponding method.
Examples
# Example 1 ----------------------------------
Titanic |>
as.data.frame() |>
tbl_custom_summary(
include = c("Age", "Class"),
by = "Sex",
stat_fns = ~ proportion_summary("Survived", "Yes", weights = "Freq"),
statistic = ~ "{prop}% ({n}/{N}) [{conf.low}-{conf.high}]",
digits = ~ list(
prop = label_style_percent(digits = 1),
n = 0,
N = 0,
conf.low = label_style_percent(),
conf.high = label_style_percent()
),
overall_row = TRUE,
overall_row_last = TRUE
) |>
bold_labels() |>
modify_footnote_header("Proportion (%) of survivors (n/N) [95% CI]", columns = all_stat_cols())
Characteristic
Male
N = 161
Female
N = 161
1 Proportion (%) of survivors (n/N) [95% CI]