tiger_block_groups_sf {RcensusPkg} | R Documentation |
tiger_block_groups_sf
Description
This function performs three tasks:
Download to an output directory a zip file from the TIGER/Line Shapefiles database.
Unzip the zip file and locate the shape file of interest.
Read and convert the shape file to a simple feature object.
Usage
tiger_block_groups_sf(
state = NULL,
output_dir = tempdir(),
delete_files = TRUE,
vintage = 2020,
general = FALSE,
sf_info = FALSE,
do_progress = FALSE,
set_crs = NULL,
transform_crs = NULL,
shapefile = NULL,
datafile = NULL,
datafile_key = NULL,
sf_key = "GEOID",
express = NULL,
check_na = FALSE
)
Arguments
state |
A required two-digit FIPS code for the state of interest. See usmap::fips function for finding FIPS codes. |
output_dir |
A full directory path where the shapefile and its associated files will be downloaded.
The default is the directory defined by the value returned by |
delete_files |
A logical which if |
vintage |
A numeric that sets the vintage of interest. The default is 2020. |
general |
A logical which if |
sf_info |
A logical which if |
do_progress |
A logical which if |
set_crs |
A numeric or character string which if non-NULL calls sf::st_crs() to set the crs of the geometries and transforms them. |
transform_crs |
A numeric or character string which if non-NULL calls sf::st_transform()
to perform a crs transform of the geometries. Note that the crs of the shapefile must not be |
shapefile |
A full file path to a shapefile folder with its unzipped files to be processed instead of downloading. |
datafile |
A dataframe containing data that should be joined with this function's resultant simple feature object. |
datafile_key |
The column name from 'datafile' dataframe used to key with the 'sf_key' column of the resultant simple feature dataframe. |
sf_key |
The column from the resultant dataframe used to key with the 'datafile' dataframe. |
express |
A logical expression object used to filter the resultant simple feature dataframe. For example, one of the columns of the resultant simple feature dataframe is "COUNTYFP". If you wanted to return just the geometries for Los Alamos, New Mexico (which has a fips code of "028"), then you assign 'express' equal to: expression(COUNTYFP == "028"). The expression will be evaluated and only the tract geometries for Los Alamos will be returned. |
check_na |
A logical which if |
Details
Returns simple feature (sf) of US Census block group boundary related geometric polygons, provided by the US Census Bureau's TIGER/Line Shapefiles database. See Simple Features for R for more information on simple features. Along with the geometries, additional block group related variables are provided. See Appendix G-2. Record Layout: Block Group State-based Shapefile) for a description of block group related variables of the sf file. For further information on the Census Bureau's shape files see About the 2021 TIGER/Line Shapefiles. From Chapter 4.3 Block Groups – "Standard block groups are clusters of blocks within the same census tract that have the same first digit of their 4-character census block number (e.g., Blocks 3001, 3002, 3003 to 3999 in census tract 1210.02 belong to block group 3). Current block groups do not always maintain these same block number to block group relationships due to boundary and feature changes that occur throughout the decade. A block group usually covers a contiguous area. Each census tract contains one or more block groups and block groups have unique numbers within census tract."
A more generalized, recognizable version of the block group geometries that has less download size is also available. For more information on cartographic boundary files see Cartographic Boundary File Description. These files are available for vintages greater than 2013 with resolution 1:500k meters.
Some earlier vintages may have NA for the crs so you may need to specify the crs_transform
to 3426. Also
you may be interested in using a state level crs. See epsg.io to search worldwide for crs.
The function returns the simple feature object which can easily be mapped (see RplotterPkg::create_sf_plot()) or joined with US Census Bureau demographic data via the GEOID value.
Value
A data frame object of class sf
Examples
library(sf)
library(downloader)
library(data.table)
library(usmap)
library(withr)
library(RcensusPkg)
# Get block groups for Washington, DC
# Get the DC fips code
dc_fips <- usmap::fips(state = "dc")
# Define a temporary output folder for the downloaded shapefiles
output_dir <- withr::local_tempdir()
if(!dir.exists(output_dir)){
dir.create(output_dir)
}
dc_block_groups_sf <- RcensusPkg::tiger_block_groups_sf(
state = dc_fips,
output_dir = output_dir,
delete_files = FALSE
)