R/survey_statistics.r
survey_total.Rd
Calculate totals from complex survey data. A wrapper
around svytotal
. survey_total
should always be
called from summarise
.
survey_total( x, na.rm = FALSE, vartype = c("se", "ci", "var", "cv"), level = 0.95, deff = FALSE, df = NULL, ... )
x | A variable or expression, or empty |
---|---|
na.rm | A logical value to indicate whether missing values should be dropped |
vartype | Report variability as one or more of: standard error ("se", default), confidence interval ("ci"), variance ("var") or coefficient of variation ("cv"). |
level | A single number or vector of numbers indicating the confidence level |
deff | A logical value to indicate whether the design effect should be returned. |
df | (For vartype = "ci" only) A numeric value indicating the degrees of freedom
for t-distribution. The default (NULL) uses |
... | Ignored |
library(survey) data(api) dstrata <- apistrat %>% as_survey_design(strata = stype, weights = pw) dstrata %>% summarise(enroll_tot = survey_total(enroll), tot_meals = survey_total(enroll * meals / 100, vartype = c("ci", "cv")))#> # A tibble: 1 × 6 #> enroll_tot enroll_tot_se tot_meals tot_meals_low tot_meals_upp tot_meals_cv #> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 3687178. 117319. 1753775. 1528167. 1979384. 0.0652#> # A tibble: 2 × 3 #> awards api00 api00_se #> <fct> <dbl> <dbl> #> 1 No 1627217. 147847. #> 2 Yes 2059960. 143734.# Leave x empty to calculate the total in each group dstrata %>% group_by(awards) %>% summarise(pct = survey_total())#> # A tibble: 2 × 3 #> awards pct pct_se #> <fct> <dbl> <dbl> #> 1 No 2236. 216. #> 2 Yes 3958. 216.# level takes a vector for multiple levels of confidence intervals dstrata %>% summarise(enroll = survey_total(enroll, vartype = "ci", level = c(0.95, 0.65)))#> # A tibble: 1 × 5 #> enroll enroll_low95 enroll_upp95 enroll_low65 enroll_upp65 #> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 3687178. 3455815. 3918540. 3577271. 3797084.# Note that the default degrees of freedom in srvyr is different from # survey, so your confidence intervals might not exactly match. To # replicate survey's behavior, use df = Inf dstrata %>% summarise(srvyr_default = survey_total(api99, vartype = "ci"), survey_defualt = survey_total(api99, vartype = "ci", df = Inf))#> # A tibble: 1 × 6 #> srvyr_default srvyr_default_low srvyr_default_upp survey_def…¹ surve…² surve…³ #> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 3898472. 3775136. 4021807. 3898472. 3.78e6 4.02e6 #> # … with abbreviated variable names ¹survey_defualt, ²survey_defualt_low, #> # ³survey_defualt_upp#> 2.5 % 97.5 % #> api99 3775894 4021049#> 2.5 % 97.5 % #> api99 3775136 4021807