2016-10-02 97 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 
完成