mean for subset
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