【发布时间】:2020-10-23 17:17:08
【问题描述】:
以下数据按其 ID 分组。我正在尝试根据以下条件对该数据框进行子集化:对于任何具有D2 == 1 的 ID,删除我们第一次观察到的行下方的行。其次,对于任何带有D1 == 0 和D2 == 0 的ID,删除此点下方的行(如果此ID 在此点之前没有D2 == 1)。
df<-data.frame(id=c(1,1,1,2,2,2,2,3,3),
A=c(3,6,2,5,4,3,8,9,8),
D1=c(0,0,0,1,1,0,0,0,0),
D2=c(1,0,0,0,0,1,1,0,1))
我已经考虑过了
df %>%
group_by(id) %>%
filter(...)
但我不清楚如何完成filter 函数来执行此任务。我希望输出看起来像
id A D1 D2
1 1 3 0 1
2 2 5 1 0
3 2 4 1 0
4 2 3 0 1
5 3 9 0 0
感谢您对此提供的任何帮助!
【问题讨论】:
标签: r dataframe filter dplyr subset