我正在尝试利用 R 中的非人口普查包来连接包含县级 fips 代码的数据("zip_codes"),以获取具有实际县名的数据("县")。
我的数据集包含 100 个观测值的邮政编码,我正在尝试匹配它们所在的县。 县和zip_codes都有县 fips 代码,但当我加入它们时,它们不匹配,因为我返回 0 个值。
library(noncensus)
data("zip_codes")
data("counties")
counties$county_fips <- as.numeric(as.character(counties$county_fips))
Test <- zip_codes %>%
left_join(counties, c("fips"="county_fips"))
Test <- Test %>%
slice(1:5) %>%
select(zip, city, state.x, county_name)
如果 R 中有其他软件包可以从邮政编码获取县,我也愿意尝试一下。
谢谢
ZCTA FIPS 代码与县 FIPS 代码没有关系。 ZCTA也不在县内筑巢,可以跨越县界。 因此,您需要没有其他对应表的空间方法。 此 R 代码将执行此操作:
library(tigris)
library(tidyverse)
library(sf)
options(tigris_use_cache = TRUE)
options(tigris_class = "sf")
cty <- counties(cb = TRUE) %>%
select(cty_id = GEOID, cty_name = NAME)
zc <- zctas(cb = TRUE)
zipcty <- st_join(zc, cty)
结果为每个唯一的 ZCTA/县组合返回一行;st_join
的默认空间方法是"相交",因此这可能意味着 ZCTA 位于县内、越过县的边界或接触县的边界。