我有这样的数据集
df <- data.frame(group = c(rep(1,3),rep(2,2), rep(3,2),rep(4,3),rep(5, 2)), score = c(0, 10, 22, 44, 6, 5, 20, 1, 2, 0, 1,5))
group score
1 1 0
2 1 10
3 1 22
4 2 44
5 2 6
6 3 5
7 3 20
8 4 1
9 4 2
10 4 0
11 5 1
12 5 5
如果分数中有0或1,我想删除整个组,输出应如下所示:
group score
1 2 44
2 2 6
3 3 5
4 3 20
有没有一种很好的方法来实现这一目标?
答案 0 :(得分:1)
您可以使用df
行
df[!df$group %in% unique(df$group[df$score %in% c(0, 1)]),]
# group score
# 4 2 44
# 5 2 6
# 6 3 5
# 7 3 20
过滤器使用%in%
检查每行的组是否在与分数为0或1相关联的组的集合中,删除所有此类行。