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

如何用dplyr的filter()函数筛选指定列无缺失值的行?

使用dplyr::filter()筛选多列非空的DataFrame子集

你可以通过两种方式用dplyr::filter()实现需求:

方法1:逐个列判断

直接在filter()中对每一列使用!is.na(),用逻辑与&连接所有条件:

df %>% 
  dplyr::filter(!is.na(col1) & !is.na(col2) & !is.na(col3))

方法2:使用across()批量处理(推荐)

如果需要筛选的列较多,用across()可以更简洁地批量检查所有目标列:

df %>% 
  dplyr::filter(dplyr::across(c(col1, col2, col3), ~!is.na(.x)))

这里across(c(col1, col2, col3))指定要检查的列,~!is.na(.x)定义了对每一列的判断规则——要求该列的值非空,只有所有目标列都满足条件的行才会被保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:10:38