根据R中数据帧中另一列的条件过滤数据帧

时间:2018-04-05 19:34:51

标签: r dataframe filter subset data-manipulation

我想根据条件过滤以下R数据帧,即如果列“Score”在同一ID中没有A,则删除与ID关联的行。例如,对于ID号2,只有C和B但没有A.因此删除ID为2的行。

dat <- read.table(textConnection('ID Score Info
1     1     A    1
2     1     A    10
3     1     B    7
4     2     C    8
5     2     B    9
6     2     B    1
7     3     B    7
8     3     C    8
9     3     C    3
10    3     A    2'))

输出如下:

       ID  Score Info
1     1     A    1
2     1     A    10
3     1     B    7
4     3     B    7
5     3     C    8
6     3     C    3
7     3     A    2

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

使用dplyr非常容易。你可以做到

library(dplyr)

dat %>% 
  group_by(ID) %>% 
  filter("A" %in% Score)