Survey data
Start with the expanded example for each command. Open the variants for options and alternative R approaches. Read the qualifications before adapting the code.
svy
Survey-weighted logit
Stata
svy: logit y xR Package:survey
survey::svyglm(y ~ x, design = design, family = quasibinomial())Differs from Stata Match design and missing-data exclusions first; singleton-PSU policy, degrees of freedom and confidence-interval transformations can differ between R and Stata.
Survey-weighted mean
Stata
svy: mean xR Package:srvyr
summarise(design, x = srvyr::survey_mean(x, na.rm = TRUE))Differs from Stata Match design and missing-data exclusions first; singleton-PSU policy, degrees of freedom and confidence-interval transformations can differ between R and Stata.
Survey-weighted regression
Stata
svy: regress y xR Package:survey
survey::svyglm(y ~ x, design = design)Differs from Stata Match design and missing-data exclusions first; singleton-PSU policy, degrees of freedom and confidence-interval transformations can differ between R and Stata.
Survey-weighted proportions
Stata
svy: tabulate xR Package:srvyr
design |> group_by(x) |> summarise(p = srvyr::survey_prop())Differs from Stata Match design and missing-data exclusions first; singleton-PSU policy, degrees of freedom and confidence-interval transformations can differ between R and Stata.
3 more examples and alternatives
Subpopulation estimate
Stata
svy, subpop(rural): mean xR Package:srvyr
design |> filter(rural == 1) |> summarise(x = srvyr::survey_mean(x, na.rm = TRUE))Differs from Stata Filtering a survey design keeps the full design for the variance, as subpop() does. Match design and missing-data exclusions first; singleton-PSU policy, degrees of freedom and confidence-interval transformations can differ between R and Stata.
Survey-weighted means by group
Stata
svy: mean x, over(g)R Package:srvyr
design |> group_by(g) |> summarise(x = srvyr::survey_mean(x, na.rm = TRUE))Differs from Stata Match design and missing-data exclusions first; singleton-PSU policy, degrees of freedom and confidence-interval transformations can differ between R and Stata.
Survey-weighted proportions with intervals
Stata
svy: proportion xR Package:srvyr
design |> group_by(x) |> summarise(p = srvyr::survey_prop(vartype = "ci"))Differs from Stata Match design and missing-data exclusions first; singleton-PSU policy, degrees of freedom and confidence-interval transformations can differ between R and Stata.
svydescribe
Describe the survey design
Stata
svydescribeR Package:base
summary(design)svyset
Declare a survey design
Stata
svyset psu [pweight = wt], strata(stratum)R Package:srvyr
design <- srvyr::as_survey_design(data, ids = psu, strata = stratum, weights = wt)Differs from Stata Match design and missing-data exclusions first; singleton-PSU policy, degrees of freedom and confidence-interval transformations can differ between R and Stata.