[R] Aggregating a data frame (was: Re: new R-user needs help)

Gabor Grothendieck ggrothendieck at gmail.com
Wed Oct 18 14:05:43 CEST 2006


Please use an informative subject for sake of the archives.

Here are several solutions:

aggregate(DF[4:8], DF[2], mean)

library(doBy)
summaryBy(x1 + x2 + x3 + x4 + x5 ~ name, DF, FUN = mean)

# if Exp, name and id columns are factors then this can be reduced to
library(doBy)
summaryBy(. ~ name, DF, FUN = mean)

library(reshape)
cast(melt(DF, id = 1:3), name ~ variable, fun = mean)



On 10/18/06, antoniababe at yahoo.se <antoniababe at yahoo.se> wrote:
> Dear all,
>
> I have a dataset
>
> Exp name id x1 x2 x3 x4 x5
> 1   a    1  23 24 23 22 30
> 1   b    2  25 26 27 23 24
> 1   c    3  32 19 23 25 28
> 2   a    4  28 32 24 26 27
> 2   b    5  23 24 25 26 28
> 2   c    6  23 31 30 38 23
> 3   a    7  24 25 31 27 29
> 3   b    8  28 25 26 32 28
> 3   c    9  21 31 28 23 29
>
> where each name a,b and c is repeated three times.
> Now I want to calculate the the averages of a,b and c
> over the three experiments for each x. For example for
> x1 I want to calculate the average of a like
>
> [a(from exp1) + a(exp2)+ a(exp3)]/3= (23+28+24)/3
>
> How can I do that ?
>
> Thanks for your help,
> Regards,
>
> Antonia
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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