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

如何筛选包含NA的行?保留x或y含NA行,剔除均非NA行

筛选含缺失值的行:保留x或y列存在NA的记录

直接使用dplyr::filter()结合is.na()函数就能实现需求,核心是筛选x列是NA 或者 y列是NA的行,对应的逻辑条件是is.na(x) | is.na(y)。

完整代码示例

library(tibble, quietly = T, warn.conflicts = F)
library(dplyr, quietly = T, warn.conflicts = F)

df <- tribble(
  ~name, ~x, ~y, 
  "id_1", 1, NA,
  "id_2", 3, NA,
  "id_3", NA, 29,
  "id_4", -99, 0,
  "id_5", -98, 28,
) %>%
  mutate(name = factor(name))

# 执行筛选
filtered_df <- df %>% filter(is.na(x) | is.na(y))

filtered_df
#> # A tibble: 3 x 3
#>   name      x     y
#>   <fct> <dbl> <dbl>
#> 1 id_1      1    NA
#> 2 id_2      3    NA
#> 3 id_3     NA    29

补充说明

如果之前使用filter失败,大概率是逻辑条件写反了——比如误写为!is.na(x) | !is.na(y)(这会保留所有行,因为所有行至少有一列非NA),或者错误使用了&(逻辑与)而非|(逻辑或)。

这个方法基于条件筛选,完全不需要依赖行号,适合大规模数据集处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 08:20:27