Skip to content

Repository files navigation

getACS

Lifecycle: experimentalLicense: MITProject Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.Codecov test coverage

The goal of getACS is to make it easier to work with American Community Survey data from the tidycensus package by Kyle Walker and others.

This package includes:

  • Functions that extend tidycensus::get_acs() to support multiple tables, geographies, or years
  • Functions for creating formatted tables from ACS data using the gt package

Installation

You can install the development version of getACS from GitHub with:

# install.packages("pak")pak::pkg_install("elipousson/getACS")

Usage

library(getACS)
library(gt)
library(ggplot2)

The main feature of {getACS} is support for returning multiple tables, geographies, and years.

acs_data<- get_acs_geographies(
geography= c("county", "state"),
county="Baltimore city",
state="MD",
table="B08134",
year=2022,
quiet=TRUE
)

The package also includes utility functions for filtering data and selecting columns to support the creation of tables using the {gt} package:

tbl_data<- filter_acs(acs_data, indent==1, line_number<=10)
tbl_data<- select_acs(tbl_data)
commute_tbl<- gt_acs(
tbl_data,
groupname_col="NAME",
column_title_label="Commute time",
table="B08134"
)
as_raw_html(commute_tbl)
Commute timeEst.% share
Baltimore city, Maryland
Less than 10 minutes16,140 ± 1,0967% ± 0%
10 to 14 minutes20,798 ± 1,3129% ± 1%
15 to 19 minutes36,667 ± 1,74016% ± 1%
20 to 24 minutes39,803 ± 1,83417% ± 1%
25 to 29 minutes16,404 ± 9707% ± 0%
30 to 34 minutes40,744 ± 1,69517% ± 1%
35 to 44 minutes16,880 ± 1,1607% ± 0%
45 to 59 minutes20,318 ± 1,2969% ± 1%
60 or more minutes26,662 ± 1,20711% ± 0%
Maryland
Less than 10 minutes203,738 ± 3,5118% ± 0%
10 to 14 minutes255,052 ± 4,24010% ± 0%
15 to 19 minutes333,717 ± 5,26913% ± 0%
20 to 24 minutes342,189 ± 4,77713% ± 0%
25 to 29 minutes177,597 ± 3,1297% ± 0%
30 to 34 minutes400,919 ± 5,98015% ± 0%
35 to 44 minutes249,413 ± 4,4439% ± 0%
45 to 59 minutes312,390 ± 4,39412% ± 0%
60 or more minutes371,252 ± 4,82814% ± 0%
Source: 2018-2022 ACS 5-year Estimates, Table B08134.

The gt_acs_compare() function also allows side-by-side comparison of geographies:

commute_tbl_compare<- gt_acs_compare(
data=tbl_data,
id_cols="column_title",
column_title_label="Commute time",
table="B08134"
)
as_raw_html(commute_tbl_compare)
Commute time
Baltimore city, Maryland
Maryland
Est.% shareEst.% share
Less than 10 minutes16,140 ± 1,0967% ± 0%203,738 ± 3,5118% ± 0%
10 to 14 minutes20,798 ± 1,3129% ± 1%255,052 ± 4,24010% ± 0%
15 to 19 minutes36,667 ± 1,74016% ± 1%333,717 ± 5,26913% ± 0%
20 to 24 minutes39,803 ± 1,83417% ± 1%342,189 ± 4,77713% ± 0%
25 to 29 minutes16,404 ± 9707% ± 0%177,597 ± 3,1297% ± 0%
30 to 34 minutes40,744 ± 1,69517% ± 1%400,919 ± 5,98015% ± 0%
35 to 44 minutes16,880 ± 1,1607% ± 0%249,413 ± 4,4439% ± 0%
45 to 59 minutes20,318 ± 1,2969% ± 1%312,390 ± 4,39412% ± 0%
60 or more minutes26,662 ± 1,20711% ± 0%371,252 ± 4,82814% ± 0%
Source: 2018-2022 ACS 5-year Estimates, Table B08134.

gt_acs_compare_vars() is a variant on gt_acs_compare() where the default values support comparisons with values in columns and geographical areas in rows:

commute_tbl_compare_vars<-acs_data|>
filter_acs(indent==1, line_number>10) |>
gt_acs_compare_vars(
table=acs_data$table_id
)
as_raw_html(commute_tbl_compare_vars)
NAMECar, truck, or vanPublic transportation (excluding taxicab)WalkedTaxicab, motorcycle, bicycle, or other means
Baltimore city, Maryland176,543 ± 2,81734,640 ± 1,63714,954 ± 1,0078,279 ± 901
Maryland2,357,924 ± 11,085171,785 ± 3,65559,507 ± 1,85857,051 ± 2,213
Source: 2018-2022 ACS 5-year Estimates, Table B08134.

The package also includes several functions to support creating plots with the {ggplot2} package including geom_acs_col() and labs_acs_survey():

plot_data<-acs_data|>
filter_acs(indent==1, line_number>10) |>
select_acs() |>
fmt_acs_county(state="Maryland")
plot_data|>
ggplot() +
geom_acs_col(
fill="NAME",
position="dodge",
color=NA,
alpha=0.75,
perc=TRUE,
errorbar_params=list(position="dodge", linewidth=0.25)
) +
scale_y_discrete("Means of transportation to work") +
scale_fill_viridis_d("Geography") +
labs_acs_survey(
.data=acs_data
) +
theme_minimal()

The geom_acs_col() function calls geom_acs_errorbar() (passing the errorbar_params argument as additional parameters) and scale_x_acs() or scale_y_acs() (depending on whether orientation = "y" or the default value of NA).

For more information on working with Census data in R read the book Analyzing US Census Data: Methods, Maps, and Models in R (February 2023).

Related projects

Related R packages and analysis projects

  • {easycensus}: Quickly Extract and Marginalize U.S. Census Tables
  • {cwi}: Functions to speed up and standardize Census ACS data analysis for multiple staff people at DataHaven, preview trends and patterns, and get data in more layperson-friendly
  • {camiller}: A set of convenience functions, functions for working with ACS data via {tidycensus}
  • {psrccensus}: A set of tools developed for PSRC (Puget Sound Regional Council) staff to pull, process, and visualize Census Data for geographies in the Central Puget Sound Region.
  • {CTPPr}: A R package for loading and working with the US Census CTPP survey data.
  • {lehdr}: a package to grab LEHD data in support of city and regional planning economic and transportation analysis
  • {mapreliability}: A R package for map classification reliability calculator
  • Studying Neighborhoods With Uncertain Census Data: Code to create and visualize demographic clusters for the US with data from the American Community Survey

Related Python libraries

  • census-data-aggregator: A Python library from the L.A. Times data desk to help “combine U.S. census data responsibly”
  • census-table-metadata: Tools for generating metadata about tables and fields in a Census release based on sequence lookup and table shell files. (Note: the pre-computed data from this repository is used to label ACS data by label_acs_metadata())

About

A R package to work with ACS data from {tidycensus}

Topics

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages