data(api, package = "survey")
dstrata <- apistrat %>%
as_survey_design(strata = stype, weights = pw)
dstrata %>%
summarise(api99_mn = survey_mean(api99),
api_diff = survey_mean(api00 - api99, vartype = c("ci", "cv")))
dstrata %>%
group_by(awards) %>%
summarise(api00 = survey_mean(api00))
# Use `survey_prop` calculate the proportion in each group
dstrata %>%
group_by(awards) %>%
summarise(pct = survey_prop())
# Or you can also leave out `x` in `survey_mean`, so this is equivalent
dstrata %>%
group_by(awards) %>%
summarise(pct = survey_mean())
# When there's more than one group, the last group is "peeled" off and proportions are
# calculated within that group, each adding up to 100%.
# So in this example, the sum of prop is 200% (100% for awards=="Yes" &
# 100% for awards=="No")
dstrata %>%
group_by(stype, awards) %>%
summarize(prop = survey_prop())
# The `interact` function can help you calculate the proportion over
# the interaction of two or more variables
# So in this example, the sum of prop is 100%
dstrata %>%
group_by(interact(stype, awards)) %>%
summarize(prop = survey_prop())
# Setting proportion = TRUE uses a different method for calculating confidence intervals
dstrata %>%
summarise(high_api = survey_mean(api00 > 875, proportion = TRUE, vartype = "ci"))
# level takes a vector for multiple levels of confidence intervals
dstrata %>%
summarise(api99 = survey_mean(api99, vartype = "ci", level = c(0.95, 0.65)))
# Note that the default degrees of freedom in srvyr is different from
# survey, so your confidence intervals might not be exact matches. To
# Replicate survey's behavior, use df = Inf
dstrata %>%
summarise(srvyr_default = survey_mean(api99, vartype = "ci"),
survey_defualt = survey_mean(api99, vartype = "ci", df = Inf))
comparison <- survey::svymean(~api99, dstrata)
confint(comparison) # survey's default
confint(comparison, df = survey::degf(dstrata)) # srvyr's default
Run the code above in your browser using DataLab