在Tidy Census最新ACS变量列表中查找18岁及以上选民变量求助
解决方法:组合ACS变量近似18岁及以上选民数
首先明确:ACS没有直接标记“选民”的变量,因为它不追踪投票登记或投票行为,但可以通过18岁及以上符合选民资格的人口来近似,具体步骤如下:
1. 核心变量组合思路
你需要两类变量的组合:
- 年龄筛选变量:锁定18岁及以上群体
- 资格验证变量:筛选符合选民核心要求的群体(美国多数地区要求公民身份,或直接用投票登记相关变量)
两种实用变量组合方案
方案一:用公民身份近似选民资格
针对ACS 5年最新估计值(如2022年),可使用B05001系列交叉变量:
B05001_006:18-64岁本土出生公民B05001_018:65岁及以上本土出生公民B05001_008:18-64岁入籍公民B05001_020:65岁及以上入籍公民
将以上四个变量的数值相加,即可得到18岁及以上公民总数,近似选民基数。
方案二:直接用投票登记相关变量
ACS提供B05004系列变量,直接对应选民登记状态:
B05004_003:18岁及以上已登记选民B05004_004:18岁及以上未登记但符合资格的选民
两者相加就是完整的18岁及以上符合选民资格的群体总数,这个方案更精准。
2. tidycensus调用示例代码
library(tidycensus) library(dplyr) # 首次使用需设置API密钥:census_api_key("你的密钥", install = TRUE) # 获取县级别18+符合资格选民数据(方案二) acs_voter_data <- get_acs( geography = "county", variables = c( registered = "B05004_003", eligible_unregistered = "B05004_004" ), year = 2022, survey = "acs5" ) # 计算每个县的18+符合资格选民总数 voter_summary <- acs_voter_data %>% group_by(GEOID, NAME) %>% summarize(total_eligible_voters = sum(estimate))
3. 变量搜索技巧
用tidycensus内置函数快速定位相关变量:
# 加载ACS变量列表 acs_vars <- load_variables(2022, "acs5", cache = TRUE) # 搜索年龄+选民/公民相关变量 target_vars <- acs_vars[grepl("18 years|citizen|registered voter", acs_vars$label, ignore.case = TRUE), ] print(target_vars)
内容的提问来源于stack exchange,提问作者Logan W.
相关产品推荐
相关产品推荐

