Actually, ddply does this perfectly ... I had made a mistake in using
'each'.  The correct code is:

ddply(dd,~b+c,function(x)each(count=length,sum=sum,avg=mean)(x$a))

  b c count sum       avg
1 1 1     2  10  5.000000
2 2 1     1   3  3.000000
3 3 1     1  10 10.000000
4 1 2     2  10  5.000000
5 1 3     1   5  5.000000
6 3 3     3  17  5.666667

Hope this helps,

             -s



On Mon, Apr 6, 2009 at 10:34 AM, Stavros Macrakis <macra...@alum.mit.edu>wrote:

> There are various ways to do this in R.
>
> # sample data
> dd <- data.frame(a=1:10,b=sample(3,10,replace=T),c=sample(3,10,replace=T))
>
> Using the standard built-in functions, you can use:
>
> *** aggregate ***
>
> aggregate(dd,list(b=dd$b,c=dd$c),sum)
>   b c  a b c
> 1 1 1 10 2 2
> 2 2 1  3 2 1
> ....
>
> *** tapply ***
>
> tapply(dd$a,interaction(dd$b,dd$c),sum)
>       1.1       2.1       3.1       1.2       2.2       3.2       1.3
> 2.3
>  5.000000  3.000000 10.000000  5.000000        NA        NA  5.000000
> ...
>
> But the nicest way is probably to use the plyr package:
>
> > library(plyr)
> > ddply(dd,~b+c,sum)
>   b c V1
> 1 1 1 14
> 2 2 1  6
> ....
>
> ********
>
> Unfortunately, none of these approaches allows you do return more than one
> result from the function, so you'll need to write
>
> > ddply(dd,~b+c,length)   # count
> > ddply(dd,~b+c,sum)
> > ddply(dd,~b+c,mean)   # arithmetic average
>
> There is an 'each' function in plyr, but it doesn't seem to be compatible
> with ddply.
>
>                -s
>
> On Mon, Apr 6, 2009 at 5:37 AM, calpeda <mauro.bias...@calpeda.it> wrote:
>
>>
>> Hi,
>> I ve been searching a lot in internet..but I can t find a solution
>> Attached, you find a file.
>> I need for each (Materiale, tpdv, UM) to find sum,avg and count
>> My idea was to aggregate for the 3 parameters ..but I don t know how to
>> get
>> the numeric value (SUM,COUNT,AVG) I need.
>> Can you help me?
>> thank you
>>
>> http://www.nabble.com/file/p22905322/ordini2008_ex.txt ordini2008_ex.txt
>> --
>> View this message in context:
>> http://www.nabble.com/SUM%2CCOUNT%2CAVG-tp22905322p22905322.html
>> Sent from the R help mailing list archive at Nabble.com.
>>
>> ______________________________________________
>> 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.
>>
>
>

        [[alternative HTML version deleted]]

______________________________________________
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.

Reply via email to