Try this: > library(doBy) > summaryBy(breaks ~ ., warpbreaks, FUN = c(mean, sum, length))
wool tension breaks.mean breaks.sum breaks.length 1 A L 44.55556 401 9 2 A M 24.00000 216 9 3 A H 24.55556 221 9 4 B L 28.22222 254 9 5 B M 28.77778 259 9 6 B H 18.77778 169 9 On Mon, Nov 23, 2009 at 3:15 AM, utkarshsinghal <utkarsh.sing...@global-analytics.com> wrote: > Hi All, > > I am currently doing the following to compute summary statistics of > aggregated data: > a = aggregate(warpbreaks$breaks, warpbreaks[,-1], mean) > b = aggregate(warpbreaks$breaks, warpbreaks[,-1], sum) > c = aggregate(warpbreaks$breaks, warpbreaks[,-1], length) > ans = cbind(a, b[,3], c[,3]) > > This seems unnecessarily complex to me so I tried >> aggregate(warpbreaks$breaks, warpbreaks[,-1], function(z) >> c(mean(z),sum(z),length(z))) > but aggregate doesn't allow FUN argument to return a vector. > > I tried "by", "tapply" and several other functions as well but the output > needed further modifications to get the same format as "ans" above. > > Is there any other function same as aggregate which allow FUN argument to > return vector. > > Regards > Utkarsh > > ______________________________________________ > 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.