2016-10-02 119 views
2

我正在嘗試計算包含一些彙總數據(平均值,最小值,最大值)的數據框中的附加列。從這個數據幀開始R - 計算總結列

Group Value 
A  15  
A  5   
B  4   
B  2  
C  25  
C  15  

我想計算方式爲每個組:

Group Mean 
A  10 
B  3 
C  20 

但我想一列添加到原始數據幀爲同一組的每一行重複的值像這樣:

Group Value Mean 
A  15  10 
A  5  10 
B  4  3 
B  2  3 
C  25  20 
C  15  20 

我設法獲得使用aggregate第一(創建臨時數據幀)此結果,比merge的原稿包含使用「Group」作爲合併變量的臨時數據幀。

我相信有一個更簡單快捷的方法來做到這一點。值得注意的是,如果可能的話,我希望能夠使用基本功能(例如無dplyr,重塑等)完成此操作。謝謝!

回答

1

base R,這可以很容易地ave

df$Mean <- with(df, ave(Value, Group)) 
df 
# Group Value Mean 
#1  A 15 10 
#2  A  5 10 
#3  B  4 3 
#4  B  2 3 
#5  C 25 20 
#6  C 15 20 
完成