2017-02-13 6 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 verwendet wird, kann ich den Durchschnitt erhalten, indemBerechnung von Gruppe in einer Spalte R

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

Aber meine Frage ist: Wie so etwas tun: (y_ij-mean_i) wo mean_i ist die durchschnittliche Gruppen i

danke.

+2

Ich würde 'y erraten - mit (df, ave (y, Gruppe))' –

+0

oder 'mit (df, ave (y, Gruppe, FUN = function (x) {x-mean (x)})) '(=' ave (df $ y, df $ gruppe, FUN = funktion (x) {x-mean (x)}) ') – Cath

+0

oder mit' dplyr', ' df%>% group_by (group)%>% muate (mean_y = y - mean (y)) ' –

Antwort

2

Wir verwenden ave

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