Hi r-help-boun...@r-project.org napsal dne 23.11.2009 09:15:02:
> 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. It is work for sapply/split. sapply(split(warpbreaks$breaks, warpbreaks[,-1]), function(x) c(mean(x), sum(x), length(x))) A.L B.L A.M B.M A.H B.H [1,] 44.55556 28.22222 24 28.77778 24.55556 18.77778 [2,] 401.00000 254.00000 216 259.00000 221.00000 169.00000 [3,] 9.00000 9.00000 9 9.00000 9.00000 9.00000 > Regards Petr > > 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.