[R] Odp: FUN argument to return a vector in aggregate function

Petr PIKAL petr.pikal at precheza.cz
Mon Nov 23 09:59:41 CET 2009


Hi

r-help-bounces at 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 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.




More information about the R-help mailing list