Load US Census Boundary and Attribute Data as 'tidyverse' and 'sf'-Ready Data Frames

An integrated R interface to the decennial US Census and American Community Survey APIs and the US Census Bureau's geographic boundary files. Allows R users to return Census and ACS data as tidyverse-ready data frames, and optionally returns a list-column with feature geometry for all Census geographies.

Build Status CRAN Badge CRAN Downloads

tidycensus is an R package that allows users to interface with the US Census Bureau's decennial Census and five-year American Community APIs and return tidyverse-ready data frames, optionally with simple feature geometry included. Install from CRAN with the following command:


Want to learn how to use tidycensus? Take the DataCamp course Analyzing US Census Data in R!

In version 0.9:

  • get_acs() now defaults to the 2013-2017 five-year American Community Survey estimates, or the 2017 1-year estimates if users set survey = "acs1".
  • Various improvements and bug fixes.

In version 0.8.1:

In version 0.4.6:

  • Bug fixed that was causing GEOIDs for some states to be converted to NA on certain Linux platforms

  • A new parameter, shift_geo, allows tidycensus users to get US state and county geometry originally obtained with the albersusa R package with Alaska and Hawaii shifted and re-scaled for better cartographic display of the entire US.

us_county_income <- get_acs(geography = "county", variables = "B19013_001", 
                            shift_geo = TRUE, geometry = TRUE)
ggplot(us_county_income) + 
  geom_sf(aes(fill = estimate), color = NA) + 
  coord_sf(datum = NA) + 
  theme_minimal() + 


Why tidycensus?

My work heavily involves the use of data from the US Census Bureau, and like many R users, I do most of my work within the tidyverse. Beyond this, the sf package now allows R users to work with spatial data in an integrated way with tidyverse tools, and updates to the tigris package provide access to Census boundary data as sf objects. Recently, I've found myself writing the same routines over and over to get Census data ready for use with tidyverse packages and sf. This motivated me to wrap these functions in a package and open-source in case other R users find them useful.

tidycensus is designed to help R users get Census data that is pre-prepared for exploration within the tidyverse, and optionally spatially with sf. To learn more about how the package works, I encourage you to read the following articles:

Future development

To keep up with on-going development of tidycensus and get even more examples of how to use the package, subscribe to my email list by clicking here (no spam, I promise!). You'll also get updates on the development of my upcoming book with CRC Press, Analyzing the US Census with R.

You can also follow my blog at https://walkerke.github.io.

My development focus is on making the current datasets as accessible as possible; if you need other approaches or datasets, I recommend the censusapi and acs packages.

If you find this project useful, you can support package development in the following ways:

Note: This product uses the Census Bureau Data API but is not endorsed or certified by the Census Bureau.


Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.10.1 by Kyle Walker, a day ago


Report a bug at https://github.com/walkerke/tidycensus/issues

Browse source code at https://github.com/cran/tidycensus

Authors: Kyle Walker [aut, cre] , Matt Herman [aut] , Kris Eberwein [ctb]

Documentation:   PDF Manual  

Task views: Official Statistics & Survey Methodology, Analysis of Spatial Data

MIT + file LICENSE license

Imports httr, sf, dplyr, tigris, stringr, jsonlite, purrr, rvest, tidyr, rappdirs, readr, xml2, units, utils, rlang

Suggests ggplot2, survey, srvyr

Imported by choroplethr, sociome.

Suggested by qualmap.

See at CRAN