2016-11-15 31 views
0

做完group_by之後,我無法獲取不同的值,除非將對象更改回數據框。明顯丟棄group_後的列

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),因爲我敢肯定,用我的代碼工作之後已經改變了。問題是,這是一個錯誤還是設計?如果通過設計,我需要改變一堆代碼。謝謝!

+0

你能還顯示您所需的輸出? – Megatron

+0

嗨@Megatron我想要的輸出是'distinct(as.data.frame(y))',但我的代碼是'distinct(y)'。我沒有編碼解決方案 - 我有。我想知道的是我應該去改變我所有的代碼,或者這是一個將被修復的錯誤? – Mist

回答

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()