group_by后不同的drop列

时间:2016-11-15 03:13:50

标签: r dplyr

在执行group_by之后,除非我将对象更改回数据框,否则无法获得不同的值。

library(dplyr)
x <- data.frame(A = c(1,1,2,2,3,3), B = c(1,2,3,4,5,6), C = c(6,6,6,5,5,5))
y <- x %>% group_by(A) %>% transmute(B = mean(B), C = mean(C))
y
distinct(y)
distinct(as.data.frame(y))

在最近的dplyr版本(我有dplyr_0.5.0)之后,这种行为似乎已经改变,因为我确信我的代码曾经工作过。问题是,这是一个错误还是设计?如果按照设计,我需要更改一堆代码。谢谢!

1 个答案:

答案 0 :(得分:0)

library(dplyr)
x <- data.frame(A = c(1,1,2,2,3,3), B = c(1,2,3,4,5,6), C = c(6,6,6,5,5,5))
y <- x %>% group_by(A) %>% transmute(B = mean(B), C = mean(C)) %>% ungroup()
y
distinct(y)
distinct(as.data.frame(y))

请注意ungroup()