r - 在 R 中满足特定条件后如何删除观察值
问题描述
我有以下情况:
vertex Time Adopt time_adopt
1 1 0 0
2 1 0 0
3 1 0 0
*4 1 1 1*
5 1 0 0
1 2 0 0
*2 2 1 2*
3 2 0 0
4 2 1 2
5 2 0 0
一旦满足条件 Adopt==1,我想删除所有观察值/顶点。换句话说,在这个简短的示例中,顶点 6、9 和 20 的 Adopt==1,这意味着我不想让它们在 Time>1 中,对所有其他顶点动态依此类推。例如,在第一个表中,突出显示的顶点 4 在时间 1 具有 Adopt==1,顶点 2 在时间 2 具有 Adopt==1。按照上面的示例,我想获得以下内容,即顶点 4 不存在时间2(即他采用==1之后的时间)并且顶点2不存在于时间3中。一旦所有顶点“感染”(采用==1),依此类推:
vertex Time Adopt time_adopt
1 1 0 0
2 1 0 0
3 1 0 0
4 1 1 1
5 1 0 0
1 2 0 0
*2 2 1 2*
3 2 0 0
5 2 0 0
1 3 0 0
3 3 0 0
5 3 0 0
如何在 R 中实现这种条件选择?
谢谢大家
解决方案
library(tidyverse)
df %>%
filter(Adopt != 1)