tidycensus报错:个人重复权重变量缺失问题求助
问题解决:ACS PUMS数据创建调查设计时权重缺失报错
问题原因
你遇到的Error: Not all person replicate weight variables are present in input data.报错,核心原因是:
使用to_survey的rep_weights模式构建调查设计时,需要ACS PUMS提供的个人重复权重变量(命名为REPWTP1至REPWTP80),但你调用get_pums时没有指定下载这些变量——默认情况下get_pums只会获取基础个人权重PWGTP,不会自动下载重复权重,导致缺失必要变量触发报错。
修复步骤
修改get_pums调用代码,新增rep_weights = "person"参数,让tidycensus自动下载所有个人重复权重变量:
pums_2023 = get_pums( variables = c("OCCP", "SEX", "AGEP", "RAC1P", "COW", "ESR", "WKHP", "ADJINC"), state = "all", survey = "acs1", year = 2023, recode = TRUE, rep_weights = "person" # 新增该参数,获取个人重复权重 )
之后重新执行筛选代码:
pums_2023.NPs = pums_2023 %>% filter(OCCP == 3258)
再运行to_survey创建调查设计对象,就不会再触发权重缺失的报错了:
pums_2023_survey.NPs = to_survey( pums_2023.NPs, type = c("person"), class = c("srvyr", "survey"), design = "rep_weights" ) class(pums_2023_survey.NPs)
补充说明
rep_weights参数支持"person"或"housing"两个取值,分别对应个人和住房单元的重复权重,根据你的分析对象(执业护士,个人层面)选择"person"即可。- 如果你需要手动指定重复权重变量,也可以在
variables参数中加入paste0("REPWTP", 1:80),但用rep_weights参数更简洁不易出错。
内容的提问来源于stack exchange,提问作者J.C.
相关产品推荐
相关产品推荐

