2017-02-13 62 views
-1
group=c("A","A","B","A","B","C","C","A") 
y=c(3,4,5,2,1,4,1,2) 
df=data.frame(group,y) 

使用aggregate,我可以计算由组中的一个R列

aggregate(df$y, list(df$group), mean) 

得到平均水平,但我的问题是:如何做这样的事情:(y_ij-mean_i) 其中mean_i是平均组i

谢谢。

+2

我猜回答'y - 与(DF,AVE(Y,组))' –

+0

或'用(DF,AVE(Y,组,FUN =功能(X ){x-mean(x)}))'(='ave(df $ y,df $ group,FUN = function(x){x-mean(x)})') – Cath

+0

或'dplyr','' df%>%group_by(group)%>%mutate(mean_y = y - mean(y))' –

回答

2

我们可以使用ave

with(df, y- ave(y, group))