当将向量用作相等性的参数时,dplyr :: filter的行为是什么?

问题描述 投票:0回答:1

我知道我们可以使用dplyr::filter使用逻辑OR过滤一列中的多个值:

library(tidyverse)
diamonds
# A tibble: 53,940 x 10

filter(diamonds, cut == 'Good' | cut == 'Premium')
# A tibble: 18,697 x 10

而且我们可以将%in%运算符与向量一起使用以简化此语法:

filter(diamonds, cut %in% c('Good', 'Premium'))
# A tibble: 18,697 x 10

都很好。但是如果我使用会发生什么:

filter(diamonds, cut == c('Good', 'Premium'))
# A tibble: 9,369 x 10

'Good'所报告,所得的小节在'Premium'列上仅包含diamonds$cutunique值。但是,它大约包含之前经过正确过滤的示例的总行数的一半。

起初我以为R会跳过其他所有行,但是在结果上运行head之后,似乎并非如此。任何人都可以阐明最后一个示例在内部发生的事情吗?

r filter dplyr data-science tibble
1个回答
0
投票
df %>%
    mutate(filterThis = cut == c('Good', 'Premium'))
© www.soinside.com 2019 - 2024. All rights reserved.