[R] mean for subset

Henrique Dallazuanna wwwhsd at gmail.com
Tue Jan 5 19:52:23 CET 2010


Try this:

with(split(DF, with(DF, ave(SCORE, NAME, FUN = length)))[['3']],
tapply(SCORE, NAME[,drop = TRUE], FUN = mean))

Or:

 with(DF, tapply(SCORE, NAME, mean))[table(DF$NAME) == 3]

On Tue, Jan 5, 2010 at 4:29 PM, Geoffrey Smith <gps at asu.edu> wrote:
> Hello, does anyone know how to take the mean for a subset of observations?
> For example, suppose my data looks like this:
>
> OBS     NAME   SCORE
> 1          Tom       92
> 2          Tom       88
> 3          Tom       56
> 4          James    85
> 5          James    75
> 6          James    32
> 7          Dawn     56
> 8          Dawn     91
> 9          Clara     95
> 10        Clara     84
>
> Is there a way to get the mean of the SCORE variable by NAME but only when
> the number of observations is equal to 3?  In other words, is there a way to
> get the mean of the SCORE variable for Tom and James, but not for Dawn and
> Clara?  Thank you.
>
> --
> Geoffrey Smith
> Visiting Assistant Professor
> Department of Finance
> W. P. Carey School of Business
> Arizona State University
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O



More information about the R-help mailing list