【问题标题】:NonCensus Package in RR中的非人口普查包
【发布时间】:2018-04-01 00:52:25
【问题描述】:

我正在尝试利用 R 中的 noncensus 包加入包含县级 fips 代码的数据(“zip_codes”),以获取具有实际县名的数据(“counties”)。

我的数据集包含 100 次观察的邮政编码,我正在尝试匹配他们所在的县。县和邮政编码都有县 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 中有其他软件包可以从邮政编码中获取县,我也愿意尝试。

谢谢,

【问题讨论】:

  • 这将有助于查看一些示例数据、您尝试过的代码以及示例结果或错误消息。
  • 图书馆(非人口普查)数据(“zip_codes”)数据(“counties”)head(zip_codes)head(counties)counties$county_fips % left_join(counties, c("fips"="county_fips")) 测试 % slice(1:5) %>% select(zip, city, state.x, County_name)
  • 它不会返回县名的值
  • zip_codes 中的 fips 从 1001 开始,但 counties 中的 county_fips 从 001 变为 840。因此没有重叠,实际上编码中使用的数字似乎不同。您必须深入研究每个数据集的构建方式才能找出代码。
  • 你可以试试totalcensus包处理人口普查数据github.com/GL-Li/totalcensus

标签: r census tidycensus


【解决方案1】:

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 位于县内、跨越县界或接触县界。

【讨论】:

  • 有趣,我之前没有使用过 Tigris 包。我期待进一步深入研究这个包。
猜你喜欢
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 2014-11-22
  • 2018-07-20
  • 2020-03-08
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多