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

如何用Tidyverse筛选不含特定精确值的所有行?

解决方案:筛选不含精确值"c"的行

首先给出示例数据框:

df <- data.frame(A = c('a', 'b', 'c'), B = c('c','d','e'))
df
#   A B
# 1 a c
# 2 b d
# 3 c e

原代码筛选包含"c"的行:

library(tidyverse)
df %>% filter_all(any_vars(. == "c"))
#   A B
# 1 a c
# 2 c e

要实现反向筛选(所有行的所有列都不含精确值"c"),可以用以下两种Tidyverse方案:

方案1:使用filter_all + all_vars

利用all_vars确保每一行的所有变量都不等于"c":

df %>% filter_all(all_vars(. != "c"))
#   A B
# 1 b d

方案2:推荐使用if_all(现代Tidyverse写法)

filter_all已被软弃用,更推荐使用if_all配合everything()指定所有列,逻辑一致:

df %>% filter(if_all(everything(), ~ .x != "c"))
#   A B
# 1 b d

两种方法都实现了精确匹配,仅保留所有列的值完全不等于"c"的行,符合需求。

内容的提问来源于stack exchange,提问作者Ben S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:36:18