拿一个简单的数据集
a <- c(1,2,3,4,5,6,7,8)
b <- c(1,2,2,1,2,2,2,2)
c <- c(1,1,1,2,2,2,3,3)
d <- data.frame(a,b,c)
Run Code Online (Sandbox Code Playgroud)
现在我想过滤我的数据,以便我们group_by(c)然后删除所有没有b=1发生的数据.
因此,results(e)应该看起来像d但没有两个底行
我试过用
e <- d %>%
group_by(c) %>%
filter(n(b)>1)
Run Code Online (Sandbox Code Playgroud)
输出应包含下面的绿色数据,并删除红色数据

Ste*_*pré 17
尝试
d %>%
group_by(c) %>%
filter(any(b == 1))
Run Code Online (Sandbox Code Playgroud)
这使:
#Source: local data frame [6 x 3]
#Groups: c
#
# a b c
#1 1 1 1
#2 2 2 1
#3 3 2 1
#4 4 1 2
#5 5 2 2
#6 6 2 2
Run Code Online (Sandbox Code Playgroud)