[R] mean of subset of rows
joris.dewolf at cropdesign.com
joris.dewolf at cropdesign.com
Mon Oct 1 18:16:21 CEST 2007
data <- data.frame(ID = rep(letters[1:4],5),size=rnorm(20,0,1))
aggregate(data$size, by = list(data$ID),mean)
<darteta001 at ikasl
e.ehu.es>
Sent by: To
r-help-bounces at r- r-help at r-project.org
project.org cc
Subject
01/10/2007 17:57 [R] mean of subset of rows
Dear list,
this must be an easy one:
I have a data.frame of two columns, "ID" with four different levels (A
to D) and numerical "size", and each of the 4 different IDs is
repeated a
different number of times. I would like to get the mean size for each
ID as another data.frame. I have tried the following:
>ID= as.character(unique(data[,1])) # I use unique() because "data"
will be larger in future
>nIDs = length(ID)
>for(i in 1:nIDs){
+ subdata = subset(data,V1==ID[i])
+ average = as.data.frame(cbind(1:i,ID[i],mean(subdata[,2]))
+ }
Unfortunately, my output only gets the last level of ID four times:
>average
V1 V2 V3
1 1 D 179.777777777778
2 2 D 179.777777777778
3 3 D 179.777777777778
4 4 D 179.777777777778
How can I get what I need? there might be an easier way to do it, but
I guess my skills aren´t that good. Any suggestions are welcome
Regards,
David
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list