有几个R
软件包可以更轻松地处理美国人口普查数据。我最常使用的两个是tigris
(用于加载空间数据)和acs
(用于加载表格数据)。
R
但是,我一直遇到的一个问题是,在不离开控制台的情况下,我无法找到一种有效、可靠的方法来确定 Place 内的所有区域(或街区组、邮政编码等) 。
例如,如果我想使用西雅图的人口普查区数据,我会首先使用tigris::tracts
下载华盛顿州金县的空间数据:
library(tigris)
tr <- tigris::tracts(state = "WA", county = "King")
但不幸的是,没有明显的方法可以对这些数据进行子集化以仅包括西雅图的区域。
glimpse(tr)
Observations: 398
Variables: 12
$ STATEFP (chr) "53", "53", "53", "53", "53", "53", "53", ...
$ COUNTYFP (chr) "033", "033", "033", "033", "033", "033", ...
$ TRACTCE (chr) "003800", "021500", "032704", "026200", "0...
$ GEOID (chr) "53033003800", "53033021500", "53033032704...
$ NAME (chr) "38", "215", "327.04", "262", "327.03", "3...
$ NAMELSAD (chr) "Census Tract 38", "Census Tract 215", "Ce...
$ MTFCC (chr) "G5020", "G5020", "G5020", "G5020", "G5020...
$ FUNCSTAT (chr) "S", "S", "S", "S", "S", "S", "S", "S", "S...
$ ALAND (dbl) 624606, 3485578, 17160645, 15242622, 10319...
$ AWATER (dbl) 0, 412526, 447367, 526886, 175464, 0, 4360...
$ INTPTLAT (chr) "+47.6794093", "+47.7643848", "+47.4940877...
$ INTPTLON (chr) "-122.2955292", "-122.2737863", "-121.7717...
同样,该acs
软件包允许用户使用该geo.make
函数创建人口普查数据的子集,但在我的示例中,如果我还没有西雅图所有地区的地区 GEOID 列表,这将无济于事。
作为记录,我知道可以在其他地方确定此信息。Census.gov 常见问题解答中的此页面提供了有关如何确定给定人口普查地点中所有区域的明确说明。但鉴于这是许多与人口普查相关的分析中的关键步骤,最好有一种从R
控制台进行的便捷方法。
提前致谢。
编辑
虽然这个问题涉及空间数据,但我最感兴趣的是找到一个非空间解决方案。例如,我更喜欢查询 Census API 并将所需 GEOID 的向量返回到使用空间分析工具(例如rgeos::intersects
)来创建向量的解决方案的解决方案。为什么?因为空间方法在这个过程中更容易出错,这是我们正在谈论的已知信息,而不是需要在空间上推断的东西。