首页 > 解决方案 > 在 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 中实现这种条件选择?

谢谢大家

标签: rsubset

解决方案


library(tidyverse)

df %>%
  filter(Adopt != 1)

推荐阅读