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.