【发布时间】:2020-09-05 17:17:41
【问题描述】:
我需要帮助在 R 中过滤整个数据帧中的一组值。我正在使用 filter_all,它适用于单个值,但是当我使用向量时,它会失败。生成的数据框不应包含来自模式的任何值。 请帮忙。
patterns <-c(-1,-2,-3,-4)
data %>% filter_all(any_vars(. !=patterns))
【问题讨论】:
标签: r dataframe filter dplyr dataset
我需要帮助在 R 中过滤整个数据帧中的一组值。我正在使用 filter_all,它适用于单个值,但是当我使用向量时,它会失败。生成的数据框不应包含来自模式的任何值。 请帮忙。
patterns <-c(-1,-2,-3,-4)
data %>% filter_all(any_vars(. !=patterns))
【问题讨论】:
标签: r dataframe filter dplyr dataset
使用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
【讨论】: