当组中有某些观察结果时,删除整个组

时间:2014-07-10 00:19:22

标签: r dataset

我有这样的数据集

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

有没有一种很好的方法来实现这一目标?

1 个答案:

答案 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相关联的组的集合中,删除所有此类行。