[R] For Loop help needed

Allan Engelhardt allane at cybaea.com
Fri Jun 4 12:01:49 CEST 2010


On 04/06/10 10:32, Petr PIKAL wrote:
>> One option:
>>
>> t<- data.frame(x1=c(1,1,0,0,0,1), x2=c(0,0,0,1,0,1),
>> Count=c(523,23,2,45,3,433))
>> t.sum<- function(df, x1, x2) sum(df[df$x1==x1&  df$x2==x2,]$Count)
>> [...]
> If this is what Khan wants so
>
> aggregate(t$Count, list(interaction(t$x1, t$x2)), sum)
>    Group.1   x
> 1     0.0   5
> 2     1.0 546
> 3     0.1  45
> 4     1.1 433
>
> could be better option
>    

Indeed it is better!  Or even shorter with the formula interface:

aggregate(Count ~ x1+x2, data=t, sum)
#   x1 x2 Count
# 1  0  0     5
# 2  1  0   546
# 3  0  1    45
# 4  1  1   433


Allan



More information about the R-help mailing list