Provide a convenient wrapper for prop.test to compute
confidence intervals for proportions
prop.ci(x, n = NULL, bounds = 1:2, ...)
prop.ci.lower(x, n = NULL, ...)
prop.ci.upper(x, n = NULL, ...)a factor vector, a logical vector, a one-dimensional table or a vector of
count of successes (in that case, n should be provided)
a vector of count of trials (x should be a vector of successes in that case)
1:2 for lower and upper bounds, 1 for lower bounds only,
2 for upper bound only.
additional parameters used by prop.test
a vector with confidence interval
prop.ci.lower is a wrapper for prop.ci with bounds = 1 and
prop.ci.upper for prop.ci with bounds = 2.
When x and n are provided, they should be of same length. Alternativaly,
n could be a single integer that will be used for each element of x.
When x and n are provided, if x contains several elements,
bounds should be 1 or 2 but can't be 1:2. In that scenario,
the returned vector will contain the corresponding lower or the upper confidence interval
bound for each element of x.
The confidence level could be specify with conf.level (0.95 by default).
By default, NA value are removed.
if (require(questionr)) {
data(hdv2003)
d <- hdv2003
freq(d$sport)
prop.ci(d$sport)
prop.ci.lower(d$sport)
prop.ci.upper(d$sport)
prop.ci(d$sport, conf.level = 0.9)
prop.ci(table(d$sport))
prop.ci(d$sport == "Non")
prop.ci(d$sport == "Oui")
prop.ci.lower(c(1277, 723), n = 2000)
prop.ci.upper(c(1277, 723), n = 2000)
if (require(data.table)) {
d <- as.data.table(d)
res <- d[, .(freq = .N), by = .(sexe, sport)]
res[, n := sum(freq), by = sexe]
res[, prop := freq / n]
res[, prop.l := prop.ci.lower(freq, n)]
res[, prop.h := prop.ci.upper(freq, n)]
res
}
}
#> Loading required package: questionr
#> Loading required package: data.table
#> sexe sport freq n prop prop.l prop.h
#> 1: Femme Non 747 1101 0.6784741 0.6498433 0.7058435
#> 2: Femme Oui 354 1101 0.3215259 0.2941565 0.3501567
#> 3: Homme Oui 369 899 0.4104561 0.3782002 0.4434870
#> 4: Homme Non 530 899 0.5895439 0.5565130 0.6217998