我想根据条件过滤以下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
非常感谢任何帮助。
答案 0 :(得分:4)
使用dplyr
非常容易。你可以做到
library(dplyr)
dat %>%
group_by(ID) %>%
filter("A" %in% Score)