Message-ID: <da79af331001051052j76a9fbb3g8e8f989d45e88242@mail.gmail.com>
Date: 2010-01-05T18:52:23Z
From: Henrique Dallazuanna
Subject: mean for subset
In-Reply-To: <4b5c27441001051029l298e7438q5d31dc1b37a21b29@mail.gmail.com>
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