我有一个 df 如
df <-read.table(text="
v1 v2 v3 v4 v5
1 A B X C
2 A B C X
3 A C C C
4 B D V A
5 B Z Z D", header=T)
如果变量 v2 到 v5 有“X”,我如何过滤它们?我看过一些使用 filter at 的示例,但这些示例似乎只适用于数字条件。
filter_at(vars(contains("prefix")), all_vars(.>5))
用“X”替换 >5 是行不通的
最佳答案
有了dplyr
1.0.4,我们可以使用if_any
library(dplyr)
df %>%
filter(if_any(v2:v5, ~ . == 'X'))
# v1 v2 v3 v4 v5
#1 1 A B X C
#2 2 A B C X
关于多列上的R dplyr过滤字符串条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63643051/