根据 dplyr R 中的多个条件删除组

Remove groups based on multiple conditions in dplyr R

我有一个这样的数据

gene=c("A","A","A","A","B","B","B","B")
frequency=c(1,1,0.8,0.6,0.3,0.2,1,1)
time=c(1,2,3,4,1,2,3,4)
df <- data.frame(gene,frequency,time)

  gene frequency time
1    A       1.0    1
2    A       1.0    2
3    A       0.8    3
4    A       0.6    4
5    B       0.3    1
6    B       0.2    2
7    B       1.0    3
8    B       1.0    4

我想删除每个基因组,在本例中为 A 或 B,当它们有 frequency > 0.9time==1 在这种情况下,我想删除 A 和我的数据,使其看起来像这样

  gene frequency time
1    B       0.3    1
2    B       0.2    2
3    B       1.0    3
4    B       1.0    4

感谢任何提示或帮助

我们可以使用 base R 中的 subset 即创建一个具有多个表达式的逻辑向量提取对应的 'gene',使用 %in% 创建一个逻辑向量,否定 (!) 到 return 不是的基因。或者也可以将 > 更改为 <= 并删除 !

subset(df, !gene %in% gene[frequency > 0.9 & time == 1])

-输出

   gene frequency time
5    B       0.3    1
6    B       0.2    2
7    B       1.0    3
8    B       1.0    4