Focuses on creating data sets and other tools that help make understanding gerrymandering faster and easier. Designed for easy preparation to run simulation analysis with the R package redist, but is aimed at the geographic aspects of redistricting, not partitioning methods. Most of these tools are gathered from seminar papers and do not correspond to a single publication.
You can install the released version of geomander from CRAN with:
install.packages("geomander")
And the development version from GitHub with:
# install.packages("devtools")
::install_github("christopherkenny/geomander") devtools
A very common task is aggregating block data to precincts.
library(geomander)
library(tidyverse)
#> -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
#> v ggplot2 3.3.5 v purrr 0.3.4
#> v tibble 3.1.6 v dplyr 1.0.7
#> v tidyr 1.1.4 v stringr 1.4.0
#> v readr 2.1.0 v forcats 0.5.1
#> -- Conflicts ------------------------------------------ tidyverse_conflicts() --
#> x dplyr::filter() masks stats::filter()
#> x dplyr::lag() masks stats::lag()
# load precincts
data('va18sub')
# create block data
<- create_block_table(state = 'VA', county = '087')
block #> Getting data from the 2020 decennial Census
#> Downloading feature geometry from the Census website. To cache shapefiles for use in future sessions, set `options(tigris_use_cache = TRUE)`.
#> Using the PL 94-171 Redistricting Data summary file
#> Note: 2020 decennial Census data use differential privacy, a technique that
#> introduces errors into data to preserve respondent confidentiality.
#> i Small counts should be interpreted with caution.
#> i See https://www.census.gov/library/fact-sheets/2021/protecting-the-confidentiality-of-the-2020-census-redistricting-data.html for additional guidance.
#> This message is displayed once per session.
# match the geographies
<- geo_match(from = block, to = va18sub)
matches
# Aggregate
<- block2prec(block_table = block, matches = matches) prec
Other important tasks include breaking data into pieces by blocks underlying them.
library(geomander)
library(tidyverse)
# load precincts
data("va18sub")
# subset to target area
<- va18sub %>% filter(COUNTYFP == '087') va18sub
Then we can get common block data:
<- create_block_table(state = 'VA', county = '087') block
And estimate down to blocks
<- geo_estimate_down(from = va18sub, to = block, wts = block$vap, value = va18sub$G18USSRSTE) disagg
For more information, see the documentation and vignettes, available at https://www.christophertkenny.com/geomander/