R语言中移除人口普查工资数据里特定异常值9999999的方法
R语言处理缺失标记值的实操方案
你可以根据自己的使用习惯选择以下两种处理方式,10万级数据集的运行效率都不存在问题:
方法1:替换为标准NA值后过滤(更推荐)
先把标记值9999999替换为R原生的NA缺失值,后续回归、统计函数都可以自动识别缺失,不需要重复处理标记规则:
# 仅替换工资列的缺失标记 df$INCWAGE[df$INCWAGE == 9999999] <- NA # 剔除工资列缺失的行,得到干净数据集 clean_df <- df[!is.na(df$INCWAGE), ]
如果后续发现其他字段也用9999999做缺失标记,可以批量替换全表:
df[df == 9999999] <- NA
验证处理效果可以运行你之前的测试代码:data.frame(clean_df$INCWAGE[1:10])
输出结果只会保留前10条里的有效记录1180、500,和预期一致。
方法2:直接过滤有效记录
不需要保留NA标识的话可以一步完成筛选:
clean_df <- df[df$INCWAGE != 9999999, ]
内容的提问来源于stack exchange,提问作者radal95
相关产品推荐
相关产品推荐

