我想根据条件过滤以下 R 数据框,即如果列“Score”在同一 ID 中没有 A,则删除与该 ID 关联的行。例如,对于 ID 号 2,只有 C 和 B 但没有 A。因此删除 ID 号为 2 的行。
dat <- structure(list(ID = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L),
Score = structure(c(1L, 1L, 2L, 3L, 2L, 2L, 2L, 3L, 3L, 1L
), .Label = c("A", "B", "C"), class = "factor"), Info = c(1L,
10L, 7L, 8L, 9L, 1L, 7L, 8L, 3L, 2L)), class = "data.frame", row.names = c("1",
"2", "3", "4", "5", "6", "7", "8", "9", "10"))
dat
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
任何帮助将非常感激。
这很容易做到dplyr
。你可以做
library(dplyr)
dat %>%
group_by(ID) %>%
filter("A" %in% Score)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句