dplyr:过滤后从分组的data.frame中删除变量

时间:2016-05-25 11:24:34

标签: r dplyr

我的问题非常简短。请检查以下代码:

library(dplyr)
d <- data.frame(A=c(1,1,2,2), B=c(10,11,12,13))
e <- d %>% group_by(A)
f <- e %>% filter(A==1) %>% select(-A)
f

这将打印

Source: local data frame [2 x 2]
Groups: A [1]

      A     B
  (dbl) (dbl)
1     1    10
2     1    11

我认为变量A会被删除,但事实并非如此。如果我在过滤并选择B之前不会对数据进行分组,那么它将起作用。

所以我的问题是,如何修改行e %>% filter(A==1) %>% select(-A)以使其有效?我知道我可以在as.data.frame()之后简单地将filter(A==1)放在链中。但我很好奇是否有另一种优雅的方式。

非常感谢。

1 个答案:

答案 0 :(得分:1)

该死的,打败了我:)

f <- e %>% filter(A == 1) %>% ungroup() %>% select(-A)