srvyr v0.2.1


Monthly downloads



by Greg Freedman

'dplyr'-Like Syntax for Summary Statistics of Survey Data

Use piping, verbs like 'group_by' and 'summarize', and other 'dplyr' inspired syntactic style when calculating summary statistics on survey data using functions from the 'survey' package.



Travis-CI Build Status AppVeyor Build Status

srvyr brings parts of dplyr's syntax to survey analysis, using the survey package.

srvyr focuses on calculating summary statistics from survey data, such as the mean, total or quantile. It allows for the use of many dplyr verbs, such as summarize, group_by, and mutate, the convenience of pipe-able functions, lazyeval's style of non-standard evaluation and more consistent return types than the survey package.

You can try it out:

# or for development version
# devtools::install_github("gergness/srvyr")

To create a tbl_svy object (the core concept behind the srvyr package), use the function as_survey_design() with the bare column names of the names you would use in survey::svydesign() object.


dstrata <- apistrat %>%
   as_survey_design(strata = stype, weights = pw)

Now many of the dplyr verbs are available.

  • Use mutate() if you want to add or modify a variable.

    dstrata <- dstrata %>%
      mutate(api_diff = api00 - api99)
  • summarise() calculates summary statistics such as mean, total, quantile or ratio.

    dstrata %>% 
      summarise(api_diff = survey_mean(api_diff, vartype = "ci")))
  • Use group_by() if you want to summarise by groups.

    dstrata %>% 
      group_by(stype) %>%
      summarise(api_diff = survey_mean(api_diff, vartype = "ci")))

You can still use functions from the survey package if you'd like to:

svyglm(api99 ~ stype, dstrata)

If you'd like to contribute, please let me know! I started this as a way to learn about R package development, so you'll have to bear with me as I learn, but I would appreciate bug reports, pull requests or other suggestions!

Functions in srvyr

Name Description
as_survey Create a tbl_svy from a data.frame
as_survey_design Create a tbl_svy survey object using sampling design
as_tibble Coerce survey variables to a data frame (tibble)
cascade Summarise multiple values into cascading groups
as_survey_rep Create a tbl_svy survey object using replicate weights
as_survey_twophase Create a tbl_svy survey object using two phase design
survey_total Calculate the total and its variation using survey methods
svychisq Chisquared tests of association for survey data.
tbl_svy tbl_svy object.
tbl_vars List variables produced by a tbl.
groups Get/set the grouping variables for tbl.
%>% Pipe operator
survey_quantile Calculate the quantile and its variation using survey methods
survey_ratio Calculate the ratio and its variation using survey methods
dplyr_single Single table verbs from dplyr
group_by Group a (survey) dataset by one or more variables.
srvyr svrvyr: A package for 'dplyr'-Like Syntax for Summary Statistics of Survey Data.
summarise Summarise multiple values to a single value.
unweighted Calculate the an unweighted summary statistic from a survey
summarise_all Summarise and mutate multiple columns.
survey_mean Calculate the mean and its variation using survey methods
No Results!

Last month downloads


Type Package
Date 2017-4-25
License GPL-2 | GPL-3
LazyData TRUE
VignetteBuilder knitr
RoxygenNote 6.0.1
NeedsCompilation no
Packaged 2017-04-26 11:54:25 UTC; greg
Repository CRAN
Date/Publication 2017-04-26 16:36:26 UTC

Include our badge in your README