我的问题非常简短。请检查以下代码:
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)
放在链中。但我很好奇是否有另一种优雅的方式。
非常感谢。
答案 0 :(得分:1)
该死的,打败了我:)
f <- e %>% filter(A == 1) %>% ungroup() %>% select(-A)