首页 > 解决方案 > 如何使用多种模式在 R 中执行 filter_all

问题描述

我需要帮助在 R 中过滤整个数据帧中的一组值。我正在使用 filter_all 它适用于单个值,但是当我使用向量时,它会失败。生成的数据框不应包含来自模式的任何值。请帮忙。

patterns <-c(-1,-2,-3,-4)

data %>% filter_all(any_vars(. !=patterns))

标签: rdataframefilterdplyrdataset

解决方案


使用any_vars(! . %in% patterns). ==并且!=是元素方面的,将第一个元素与第一个元素进行比较,将第二个元素与第二个元素进行比较,等等(如果长度不匹配,则进行回收)。 %in%像集合操作一样工作。比较1:4 == c(1, 3)1:4 %in% c(1, 3)

1:4 == c(1, 3)
# [1] TRUE FALSE FALSE FALSE
1:4 %in% c(1, 3)
# [1] TRUE FALSE TRUE FALSE

推荐阅读