ACS Subject Tables邮政编码查询模糊地理错误求助(2014-2018年)
解决ACS 2014-2018年5年期数据ZCTA地理信息模糊错误
当使用tidycensus的get_acs()函数查询2018年及更早的5年期ACS数据时,指定ZCTA列表会触发「地理信息模糊」错误,但2019-2022年的查询可正常运行。
问题原因
2019年之前的ACS API对ZCTA的地理解析逻辑更严格,单独指定ZCTA可能存在歧义(部分ZCTA可能跨州或API需要明确的地理限定),而2019年后的API更新了解析规则,无需额外州信息即可识别ZCTA。
解决方案
1. 直接添加州参数(适用于ZCTA集中在单一州)
先确认目标ZCTA所属的州(示例中的ZCTA均属于加州,州代码为CA),在get_acs()中加入state参数即可:
Data2018 <- get_acs( geography = "zcta", variables = var_list, year = 2018, zcta = c("93901", "93905", "93906", "93908", "93926", "93927", "93930", "93933", "93940", "93943", "93944", "93955", "93960", "95012", "95076"), state = "CA", moe_level = 95 )
2. 按州分组查询(适用于ZCTA跨多个州)
如果ZCTA分布在不同州,先将ZCTA按州分组,分别调用API后合并结果:
# 按州分组ZCTA zcta_groups <- list( CA = c("93901", "93905", "93906", "93908", "93926", "93927", "93930", "93933", "93940", "93943", "93944", "93955", "93960", "95012", "95076") # 可添加其他州的ZCTA列表 ) # 循环查询并合并结果 library(purrr) Data2018 <- map_dfr(zcta_groups, function(zctas) { target_state <- names(zcta_groups)[which(zcta_groups == zctas)] get_acs( geography = "zcta", variables = var_list, year = 2018, zcta = zctas, state = target_state, moe_level = 95 ) }, .id = "state_code")
验证提示
可以通过tidycensus::fips_codes数据集确认ZCTA对应的州代码,确保state参数准确无误。
内容的提问来源于stack exchange,提问作者Michelle Molina
相关产品推荐
相关产品推荐

