[英]Using dplyr to filter on multiple columns
我被一些看起來很愚蠢的事情難住了。 是否有一種優雅的 dplyr 方法來僅過濾掉year == 2020
和quarter %in% 1:2
的 2 行。
我不想過濾除 2020 年以外的任何其他年份的quarter
。
library(tibble)
library(dplyr)
df <- tibble(measure = rep(letters[1:4], 4),
year = rep(2017:2020,4)) %>%
arrange(year) %>%
mutate(quarter = rep(1:4, 4))
df2 <- filter(df, measure != 2020 & quarter %in% 1:2)
由reprex package (v0.3.0) 於 2021 年 2 月 1 日創建
我想要的是除了最后兩行之外的所有內容:
嘗試否定你不想要的整個表達:
dplyr::filter(df, !(year == 2020 & quarter %in% 1:2))
measure year quarter
1 a 2017 1
2 a 2017 2
3 a 2017 3
4 a 2017 4
5 b 2018 1
6 b 2018 2
7 b 2018 3
8 b 2018 4
9 c 2019 1
10 c 2019 2
11 c 2019 3
12 c 2019 4
13 d 2020 3
14 d 2020 4
year == 2020 & quarter %in% 1:2
表示保留year
為 2020 且quarter
為1
或2
的行。 !
否定整個表達式,因此您排除了這些行。
僅供參考,您也可以使用dplyr::between(quarter, 1, 2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.