You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中按值为0或空单元格筛选列的方法求助

筛选数据框中指定列值为0或无数据的行

问题原因

你之前的代码无效,核心问题是:

  • 判断缺失值不能用== NA,因为NA和任何值比较结果都是NA,filter会自动过滤掉结果为NA的行,无法选中缺失值的行;
  • 如果列是数值型,grp_mlk == ""的结果全为NA,同样会被过滤,起不到筛选作用。

正确解决方案

根据列的类型选择对应代码:

1. 列是字符型(存在"0"、空字符串""、NA)

demo2122 %>% 
  filter(grp_mlk == "0" | grp_mlk == "" | is.na(grp_mlk))

或者用%in%简化写法:

demo2122 %>% 
  filter(grp_mlk %in% c("0", "") | is.na(grp_mlk))

2. 列是数值型(存在0、NA)

demo2122 %>% 
  filter(grp_mlk == 0 | is.na(grp_mlk))

补充:处理混合类型场景

如果列中同时存在数值0、字符"0"、空字符串和NA,可以先统一转换类型再筛选:

demo2122 %>% 
  mutate(grp_mlk = as.character(grp_mlk)) %>% 
  filter(grp_mlk %in% c("0", "") | is.na(grp_mlk))

内容的提问来源于stack exchange,提问作者Catherine Ticzon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:45:38