You can also use sqldf:
> require(sqldf) > sqldf("select class, `group`, name, avg(height) + from myData + group by class, 'group', name") class group name avg(height) 1 0 B Jane 58.5 2 0 A Tom 62.5 3 1 A Enzo 66.5 4 1 B Mary 70.5 > On Thu, Oct 7, 2010 at 4:49 AM, Peter Ehlers <ehl...@ucalgary.ca> wrote: > On 2010-10-06 13:24, Erik Iverson wrote: >> >> Hello, >> >> You can use ddply from the very useful plyr package to do this. >> There must be a way using "base R" functions, but plyr is >> worth looking into in my opinion. >> >> > install.packages("plyr") >> > library(plyr) >> > ddply(myData, .(class, group, name), function(x) mean(x$height)) >> >> class group name V1 >> 1 0 A Tom 62.5 >> 2 0 B Jane 58.5 >> 3 1 A Enzo 66.5 >> 4 1 B Mary 70.5 > > Or use summarize: > > > ddply(myData, .(class, group, name), summarize, mht = mean(height)) > > -Peter Ehlers > >> >> Geoffrey Smith wrote: >>> >>> Hello, I am having trouble getting the output from the tapply function >>> formatted so that it can be made into a nice table. Below is my question >>> written in R code. Does anyone have any suggestions? Thank you. Geoff >>> >>> #Input the data; >>> name<- c('Tom', 'Tom', 'Jane', 'Jane', 'Enzo', 'Enzo', 'Mary', 'Mary'); >>> year<- c(2008, 2009, 2008, 2009, 2008, 2009, 2008, 2009); >>> group<- c('A', 'A', 'B', 'B', 'A', 'A', 'B', 'B'); >>> class<- c(0, 0, 0, 0, 1, 1, 1, 1); >>> height<- c(62, 63, 59, 58, 67, 66, 70, 71); >>> >>> #Combine the data into a data frame; >>> myData<- data.frame(name, year, group, class, height); >>> myData; >>> >>> #Calculate the mean of height by class, group, and name; >>> tapply(myData$height, data.frame(myData$class, myData$group, >>> myData$name), >>> mean); >>> >>> #The raw output from the tapply function is fine, but I would; >>> #really like the output to look like this; >>> # class group name mean >>> # 0 A Tom 62.5 >>> # 0 B Jane 58.5 >>> # 1 A Enzo 66.5 >>> # 1 B Mary 70.5 >>> >> >> ______________________________________________ >> R-help@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. > > ______________________________________________ > R-help@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. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? ______________________________________________ R-help@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.