【发布时间】:2021-11-07 16:20:31
【问题描述】:
考虑这个数据框:
data <- data.frame(ID = rep(letters[1:4], each= 4),
Year = c('1990','1990','1990','1990',
'1990','1990','2000', '2000',
'1990','1990','1990','1990',
'1990','1990','2000', '2000'))
我们有 4 个独特的 ID 和 2 个 Years。 ID == a 和 ID == c 仅在 1990 年有观察结果,而 ID == b 和 ID == D 对这两年都有观察结果。我们想要过滤 ID 两年都有观察结果的情况,因此预期结果如下所示:
ID Year
b 1990
b 1990
b 2000
b 2000
d 1990
d 1990
d 2000
d 2000
使用dplyrs 语法,我们不能像这样使用& group_by(ID) 和filter:
data%>%
group_by(ID)%>%
filter(Year == '1990' & Year == '2000')
因为这两个条件都与同一因素的水平有关 (Year)。
那么我们如何使用dplyrs 语法来做到这一点呢?
【问题讨论】:
标签: r filter dplyr group-by conditional-statements