我知道我们可以使用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$cut
和unique
值。但是,它大约包含之前经过正确过滤的示例的总行数的一半。
起初我以为R会跳过其他所有行,但是在结果上运行head
之后,似乎并非如此。任何人都可以阐明最后一个示例在内部发生的事情吗?
df %>%
mutate(filterThis = cut == c('Good', 'Premium'))