使用R包censusapi查询2010年ZCTA5人口数据报错的解决咨询
解决censusapi查询2010 ZCTA5人口数据的错误问题
我来帮你搞定这个问题!你遇到的unknown/unsupported geography heirarchy错误,主要是因为2010 SF1的Census API接口不接受全称的地理参数名称,而且ZCTA5的地理层级需要明确指定上层范围才能正常查询。
修改后的正确代码
直接调整地理参数的写法,同时加上上层范围限定,就能正常获取所有ZCTA5的2010年人口数据了:
getCensus( name = "sf1", vars = c("P0010001"), region = "zcta5:*", regionin = "us:*", vintage = 2010, key = Sys.getenv("CENSUS_KEY") )
为什么这样修改?
- 地理参数名称错误:Census API的2010 SF1接口里,ZCTA5的官方地理标识符是
zcta5,而不是你用的全称"zip code tabulation area",API无法识别这个全称,所以报错。 - 缺少上层地理范围:ZCTA5在SF1的地理层级中,不能直接单独查询所有条目,需要用
regionin = "us:*"来明确限定范围是整个美国,这样API才能识别有效的地理层级关系。而county:*能正常运行,是因为county在SF1的层级里默认可以直接关联到美国范围,不需要额外指定。
额外小技巧
如果只想查询某个特定州的ZCTA5数据,把regionin改成对应州的FIPS代码就行,比如查询加州的话,就写regionin = "state:06"。
内容的提问来源于stack exchange,提问作者Username
相关产品推荐
相关产品推荐

