tidycensus获取ACS数据:关闭MOE列或清理相关列的方法
处理tidycensus获取ACS数据时的MOE列问题
能不能直接关闭MOE列的拉取?
不行。get_acs()函数没有提供跳过MOE(边际误差)列的参数——ACS数据集本身就将估算值和边际误差绑定提供,tidycensus的设计默认会同时返回这两类数据。
如何删除MOE列并清理估算列名?
可以用dplyr(推荐,和tidycensus生态兼容)或者base R快速处理:
方法1:用dplyr + stringr
library(tidycensus) library(dplyr) library(stringr) # 你的原代码 dv_acs = c( var1 = "B25002_001", var2 = "B25002_002", var3 = "C24010_039" ) acs_vars <- get_acs( geography = "tract", state = "MD", variables = dv_acs , year = 2009, output = "wide", geometry = FALSE ) # 清理数据 acs_clean <- acs_vars %>% # 删除所有以"_M"结尾的MOE列 select(-ends_with("_M")) %>% # 去掉估算列末尾的"_E"后缀 rename_with(~ str_remove(., "_E$"), everything())
方法2:用base R
如果不想加载额外包,可以用base R处理:
# 删除以"_M"结尾的列 acs_clean <- acs_vars[, !grepl("_M$", colnames(acs_vars))] # 移除列名末尾的"_E" colnames(acs_clean) <- sub("_E$", "", colnames(acs_clean))
两种方法最终都会得到只保留估算值、列名不带_E后缀的干净数据集。
内容的提问来源于stack exchange,提问作者tchoup
相关产品推荐
相关产品推荐

