[R] operation on a data.frame
Federico Abascal
fabascal at cnb.csic.es
Mon May 26 12:02:36 CEST 2008
Estimated colleagues:
Here is a problem I am trying to solve: I have a data frame of this kind
df <- data.frame(c("A","B","C","A","A","B"), matrix(1:18,nrow=6,ncol=3))
rownames(df) <- c("One","Two","Three","Four","Five","Six")
colnames(df) <- c("C1","C2","C3","C4")
df
C1 C2 C3 C4
One A 1 7 13
Two B 2 8 14
Three C 3 9 15
Four A 4 10 16
Five A 5 11 17
Six B 6 12 18
I would like to obtain a data.frame or matrix in which rows with an
equal string on column "C1" are averaged. In the previous example, rows
"One", "Four" and "Five" should be averaged because the three have "A"
con C1. The resulting row should be: "A" 10/3 28/3 46/3
In SQL I think I could do this by selecting c1,c2,c3 and c4, grouping by
c1 and averaging c2, c3,and c4.
Is there some way to do this easily in R?
Thank you very much,
Federico
More information about the R-help
mailing list