Skip to content

CDCgov/surveytable

Repository files navigation

Survey table: formatted survey estimates

surveytable is an R package for conveniently tabulating estimates from complex surveys.

  • If you deal with survey objects in R (created with survey::svydesign()), then this package is for you.

  • Works with complex surveys (data systems that involve survey design variables, like weights and strata).

  • Works with unweighted data as well.

  • The surveytable package provides short and understandable commands that generate tabulated, formatted, and rounded survey estimates.

  • With surveytable, you can

    • tabulate estimated counts and percentages, with their standard errors and confidence intervals,
    • estimate the total population,
    • tabulate survey subsets and variable interactions,
    • tabulate numeric variables,
    • perform hypothesis tests,
    • tabulate rates,
    • modify survey variables, and
    • save the output.
  • Optionally, all of the tabulation functions can identify low-precision estimates using the National Center for Health Statistics (NCHS) algorithms (or other algorithms).

  • If the surveytable code is called from an R Markdown notebook or a Quarto document, it automatically generates HTML or PDF tables, as appropriate.

  • The package reduces the number of commands that users need to execute, which is especially helpful for users new to R or to programming.

Installation

Install from CRAN:

install.packages("surveytable")

or get the development version from GitHub:

install.packages(c("remotes", "git2r"))
remotes::install_github("CDCgov/surveytable", upgrade = "never")

Documentation

Find the documentation for surveytable here: https://cdcgov.github.io/surveytable/

Example

Here is a basic example, to get you started.

  1. Load the package:
library(surveytable)
  1. Specify the survey that you wish you analyze. surveytable comes with a survey called namcs2019sv, for use in examples.
set_survey(namcs2019sv)
Survey info {NAMCS 2019 PUF}
Variables Observations Design
33 8,250 Stratified 1 - level Cluster Sampling design (with replacement) With (398) clusters. namcs2019sv = survey::svydesign(ids = ~CPSUM, strata = ~CSTRATM, weights = ~PATWT , data = namcs2019sv_df)
  1. Specify the variable to analyze. In NAMCS, AGER is the age category variable:
tab("AGER")
Patient age recode {NAMCS 2019 PUF}
Level n Number SE LL UL Percent SE LL UL
Under 15 years 887 117,916,772 14,097,315 93,228,928 149,142,177 11.4 1.3 8.9 14.2
15-24 years 542 64,855,698 7,018,359 52,386,950 80,292,164 6.3 0.6 5.1 7.5
25-44 years 1,435 170,270,604 13,965,978 144,924,545 200,049,472 16.4 1.1 14.3 18.8
45-64 years 2,283 309,505,956 23,289,827 266,994,092 358,786,727 29.9 1.4 27.2 32.6
65-74 years 1,661 206,865,982 14,365,993 180,480,708 237,108,637 20.0 1.2 17.6 22.5
75 years and over 1,442 167,069,344 15,179,082 139,746,193 199,734,713 16.1 1.3 13.7 18.8
N = 8250.

The table shows:

  • Descriptive variable name
  • Survey name
  • For each level of the variable:
    • Number of observations
    • Estimated count with its SE and 95% CI
    • Estimated percentage with its SE and 95% CI
  • Sample size
  • Optionally, the table can show whether any low-precision estimates were found

Public Domain Standard Notice

This repository constitutes a work of the United States Government and is not subject to domestic copyright protection under 17 USC § 105. This repository is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the CC0 1.0 Universal public domain dedication. All contributions to this repository will be released under the CC0 dedication. By submitting a pull request you are agreeing to comply with this waiver of copyright interest.

License Standard Notice

The repository utilizes code licensed under the terms of the Apache Software License and therefore is licensed under ASL v2 or later.

This source code in this repository is free: you can redistribute it and/or modify it under the terms of the Apache Software License version 2, or (at your option) any later version.

This source code in this repository is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Apache Software License for more details.

You should have received a copy of the Apache Software License along with this program. If not, see https://www.apache.org/licenses/LICENSE-2.0.html

The source code forked from other open source projects will inherit its license.

Privacy Standard Notice

This repository contains only non-sensitive, publicly available data and information. All material and community participation is covered by the Disclaimer and Code of Conduct. For more information about CDC’s privacy policy, please visit https://www.cdc.gov/other/privacy.html.

Contributing Standard Notice

Anyone is encouraged to contribute to the repository by forking and submitting a pull request. (If you are new to GitHub, you might start with a basic tutorial.) By contributing to this project, you grant a world-wide, royalty-free, perpetual, irrevocable, non-exclusive, transferable license to all users under the terms of the Apache Software License v2 or later.

All comments, messages, pull requests, and other submissions received through CDC including this GitHub page may be subject to applicable federal law, including but not limited to the Federal Records Act, and may be archived. Learn more at https://www.cdc.gov/other/privacy.html.

Records Management Standard Notice

This repository is not a source of government records, but is a copy to increase collaboration and collaborative potential. All government records will be published through the CDC web site.

Additional Standard Notices

Please refer to CDC’s Template Repository for more information about contributing to this repository, public domain notices and disclaimers, and code of conduct.