Learn R Programming

ipumsr

ipumsr provides an R interface for handling IPUMS data, allowing users to:

  • Easily read files downloaded from the IPUMS extract system

  • Request data, download files, and get metadata from certain IPUMS collections

  • Interpret and process data using the contextual information that is included with many IPUMS files

Installation

To install the package from CRAN, use

install.packages("ipumsr")

To install the development version of the package, use

remotes::install_github("ipums/ipumsr")

What is IPUMS?

IPUMS is the world’s largest publicly available population database, providing census and survey data from around the world integrated across time and space. IPUMS integration and documentation make 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.

IPUMS consists of multiple projects, or collections, that provide different data products.

  • Microdata projects distribute data for individual survey units, like people or households.
  • Aggregate data projects distribute summary tables of aggregate statistics for particular geographic units along with corresponding GIS mapping files.

ipumsr supports different levels of functionality for each IPUMS project, as summarized in the table below.

ipumsr uses the IPUMS API to submit data requests, download data extracts, and get metadata, so the scope of functionality generally corresponds to that available via the API. As the IPUMS team extends the API to support more functionality for more projects, we aim to extend ipumsr capabilities accordingly.

Getting started

If you’re new to IPUMS data, learn more about what’s available through the IPUMS Projects Overview. Then, see vignette("ipums") for an overview of how to obtain IPUMS data.

The package vignettes are the best place to explore what ipumsr has to offer:

  • To read IPUMS data extracts into R, see vignette("ipums-read").

  • To interact with the IPUMS extract and metadata system via the IPUMS API, see vignette("ipums-api").

  • For additional details about microdata and NHGIS extract requests, see vignette("ipums-api-micro") and vignette("ipums-api-nhgis").

  • To work with labelled values in IPUMS data, see vignette("value-labels").

  • For techniques for working with large data extracts, see vignette("ipums-bigdata").

The IPUMS support website also houses many project-specific R-based training exercises. However, note that some of these exercises may not be be up to date with ipumsr’s current functionality.

Related work

  • The survey and srvyr packages can help you incorporate IPUMS survey weights into your analysis for various survey designs.

  • See haven for more information about value labels and labelled vectors

  • hipread underlies the hierarchical file reading functions in ipumsr

Getting help + contributing

We greatly appreciate feedback and development contributions. Please submit any bug reports, pull requests, or other suggestions on GitHub. Before contributing, please be sure to read the Contributing Guidelines and the Code of Conduct.

If you have general questions or concerns about IPUMS data, check out our user forum or send an email to ipums@umn.edu.

Copy Link

Version

Install

install.packages('ipumsr')

Monthly Downloads

3,403

Version

0.8.2

License

Mozilla Public License 2.0

Issues

Pull Requests

Stars

Forks

Maintainer

Derek Burk

Last Published

February 24th, 2025

Functions in ipumsr (0.8.2)

ipums_ddi-class

ipums_ddi class
ipums_bind_rows

Bind multiple data frames by row, preserving labelled attributes
ipums_collect

Collect data into R session with IPUMS attributes
get_extract_info

Retrieve the definition and latest status of an extract request
get_sample_info

List available samples for IPUMS microdata collections
ipums_callback

Callback classes
get_recent_extracts_info_list

Get information on recent extracts
ipums_data_collections

List IPUMS data collections
get_metadata_nhgis

List available data sources from IPUMS NHGIS
join_failures

Report on observations dropped during a join
lbl

Make a label placeholder object
ipums_website

Launch a browser window to an IPUMS metadata page
ipumsr-package

ipumsr: An R Interface for Downloading, Reading, and Handling IPUMS Data
ipums_list_files

List files contained within a zipped IPUMS extract
ipums_shape_join

Join tabular data to geographic boundaries
ipums_file_info

Get file information for an IPUMS extract
ipums_example

Get path to IPUMS example datasets
ipums_extract-class

ipums_extract class
read_ipums_ddi

Read metadata about an IPUMS microdata extract from a DDI codebook (.xml) file
ipums_var_info

Get contextual information about variables in an IPUMS data source
ipums_view

View a static webpage with variable metadata from an IPUMS extract
lbl_relabel

Modify value labels for a labelled vector
read_ipums_micro

Read data from an IPUMS microdata extract
read_ipums_micro_chunked

Read data from an IPUMS microdata extract by chunk
lbl_na_if

Convert labelled data values to NA
lbl_clean

Clean unused labels
lbl_add

Add labels for unlabelled values
lbl_define

Define labels for an unlabelled vector
read_ipums_micro_yield

Read data from an IPUMS microdata extract in yields
read_ipums_sf

Read spatial data from an IPUMS extract
read_nhgis_codebook

Read metadata from an NHGIS codebook (.txt) file
read_nhgis

Read tabular data from an NHGIS extract
set_ipums_api_key

Set your IPUMS API key
remove_from_extract.micro_extract

Remove values from an existing extract definition for an IPUMS microdata project
reexports

Objects exported from other packages
remove_from_extract.nhgis_extract

Remove values from an existing NHGIS extract definition
remove_from_extract

Remove values from an existing IPUMS extract definition
set_ipums_default_collection

Set your default IPUMS collection
zap_ipums_attributes

Remove label attributes from a data frame or labelled vector
wait_for_extract

Wait for an extract request to finish processing
var_spec

Create variable and sample specifications for IPUMS microdata extract requests
save_extract_as_json

Store an extract definition in JSON format
set_ipums_var_attributes

Add IPUMS variable attributes to a data frame
submit_extract

Submit an extract request via the IPUMS API
selection_language

tidyselect selection language in ipumsr
extract_tbl_to_list

Convert recent extract definitions from tibble to list format
define_extract_nhgis

Define an IPUMS NHGIS extract request
download_extract

Download a completed IPUMS data extract
download_supplemental_data

Download IPUMS supplemental data files
get_extract_history

Browse definitions of previously submitted extract requests
define_extract_micro

Define an extract request for an IPUMS microdata collection
add_to_extract.nhgis_extract

Add values to an existing IPUMS NHGIS extract definition
add_to_extract_micro

Add values to an existing extract definition for an IPUMS microdata collection
ds_spec

Create dataset and time series table specifications for IPUMS NHGIS extract requests
add_to_extract

Add values to an existing IPUMS extract definition