使用dplyr分组并过滤数据管理

luk*_*keg 9 r dplyr

拿一个简单的数据集

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)

  • @lukeg这不是`dplyr`包的一部分.`any()`在基础R中.从`?any`:*给定一组逻辑向量,至少有一个值是真的吗?* (2认同)