Learn R Programming

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)
  1. Specify the variable to analyze. In NAMCS, AGER is the age category variable:
tab("AGER")

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.

Copy Link

Version

Install

install.packages('surveytable')

Monthly Downloads

306

Version

0.9.7

License

Apache License (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Alex Strashny

Last Published

April 28th, 2025

Functions in surveytable (0.9.7)

tab_cross

Tabulate subsets or interactions
svyciprop_adjusted

Confidence intervals for proportions, adjusted for degrees of freedom
tab_subset_rate

Calculate rates for subsets
surveytable-package

surveytable: Formatted Survey Estimates
var_any

Is any variable true? (Logical OR)
var_all

Are all the variables true? (Logical AND)
tab

Tabulate variables
var_list

List variables in a survey.
var_cut

Convert numeric to factor
var_cross

Cross or interact two variables
tab_rate

Calculate rates
var_not

Logical NOT
var_collapse

Collapse factor levels
total_rate

Overall rate
var_case

Convert factor to logical
var_copy

Copy a variable
namcs2019sv

Selected variables from the National Ambulatory Medical Care Survey (NAMCS) 2019 Public Use File (PUF)
survey_subset

Subset a survey, while preserving variable labels
set_survey

Specify the survey to analyze
set_opts

Set certain options
surveytable-options

Package options
show_options

Show package options
print.surveytable_table

Print surveytable tables
rccsu2018

National Study of Long-Term Care Providers (NSLTCP) Residential Care Community (RCC) Services User (SU) 2018 Public Use File (PUF)
deprecated

Deprecated functions
codebook

Create a codebook for the survey
total

Total count
uspop2019

US Population in 2019