The ipumsr package helps import IPUMS extracts from the IPUMS website into R. IPUMS provides census and survey data from around the world integrated across time and space. IPUMS integration and documentation makes it easy to study change, conduct comparative research, merge information across data types, and analyze individuals within family and community context. Data and services are available free of charge.

The ipumsr package can be installed by running the following command:

Or, you can install the development version using the following commands:

if (!require(devtools)) install.packages("devtools")


Learning More

The vignettes are a great place to learn more about ipumsr and IPUMS data:

  • See the ipums vignette for a general introduction

  • For a more detailed look at some of the features, see these vignettes:

    • value-labels
      • Provides guidance for using the value labels provided by IPUMS
    • ipums-geography
      • Provides guidance for using R as GIS tool with IPUMS data
    • ipums-bigdata
      • How to handle large IPUMS data extracts and examples of using the chunked versions of microdata reading functions.
    • ipums-api
      • How to use the IPUMS microdata extract API to define and submit extract requests, check extract status, and download extract files
  • Or to see examples of how to work through data from particular projects, see these vignettes:

    • ipums-cps
      • An example of using CPS data with the ipumsr package
    • ipums-nhgis
      • An example of using NHGIS data with the ipumsr package
    • ipums-terra
      • An example of using IPUMS Terra data with the ipumsr package
    • The IPUMS website
      • For more project specific exercises

You can access them from R with the vignette() command (eg vignette("value-labels")).

If you are installing from github and want the vignettes, you’ll need to run the following commands first:

devtools::install_github("ipums/ipumsr", build_vignettes = TRUE)


We greatly appreciate bug reports, suggestions or pull requests. They can be submitted via github, on our user forum or by email to

Before contributing, please be sure to read the Contributing Guidelines and the Code of Conduct.