[Rd] calculating means per group

Kjell Konis kjell.konis at epfl.ch
Thu Sep 4 10:06:04 CEST 2008


Hi Luc,

First of all, questions like this should really be asked on the R-help  
mailing list.

The tapply function does what you want:

 > year
  [1] 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2
Levels: 1 2
 > area
  [1] a a a a a b b b b a a a a b b b b b
Levels: a b
 > value
  [1] 20 25 28 31 23 25 28 23 19 25 23 24 26 27 28 20 25 28

Note that both year and area are factors.

Get the mean for each area:

 > tapply(value, area, mean)
        a        b
25.00000 24.77778

If you make the second argument a list then you can subset on both  
factor columns:

 > tapply(value, list(year, area), mean)
      a     b
1 25.4 23.75
2 24.5 25.60

Kjell


On 4 sept. 08, at 09:06, RFTW wrote:

>
> Hi all
> I have a very basic question, yet i have not found how to do it.
>
> Suppose my dataset looks like this:
>
> Year    Area    value
> 1       a       20
> 1       a       25
> 1       a       28
> 1       a       31
> 1       a       23
> 1       b       25
> 1       b       28
> 1       b       23
> 1       b       19
> 2       a       25
> 2       a       23
> 2       a       24
> 2       a       26
> 2       b       27
> 2       b       28
> 2       b       20
> 2       b       25
> 2       b       28
>
>
> Now, i want to calculate a MEAN per year per area. How do i do that?
>
> With mean(value) i calculate the mean of all values of course. I  
> just need
> to know how to group year and area correctly.
>
> I assume that i can use this grouping in other calculations too,  
> right?
>
>
> Cheers,
>
> Luc
> --
> View this message in context: http://www.nabble.com/calculating-means-per-group-tp19271479p19271479.html
> Sent from the R devel mailing list archive at Nabble.com.
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list