0

m1同じとのグループ内で、if is not 0 の累積合計と if is not 0n1の累積合計を計算する必要があります。x1x1y1y1

 d <- data.frame () 
    for ( m1 in 2: 3) { 
         for (n1 in 2: 3){ 
              for (x1 in 0: m1) { 
                   for (y1 in 0: n1) {                                                                                                         

                  d<-rbind(d, c(m1, n1, x1,y1)) 
    }}}} 

したがってm1=2n1=2、 の累積合計は 9 でx1、 の合計y1は 9 であり m1=2n1=3、 の累積合計はx112 で、 の合計y1は 18 です。

4

1 に答える 1

1

これはあなたが探しているものですか?(を使用data.table)。そして、すべての要素を累積して合計して返すのではなく、すべての要素を合計したいと思います。

# after running your code, I had to rename it
names(d) <- c("m1", "n1", "x1", "y1")
require(data.table)
dt <- data.table(d)
setkey(dt, m1, n1)
out <- dt[, list(s.x1=sum(x1), x.y1=sum(y1)),by="m1,n1"]
> out
#    m1 n1 s.x1 x.y1
# 1:  2  2    9    9
# 2:  2  3   12   18
# 3:  3  2   18   12
# 4:  3  3   24   24
于 2013-01-30T18:21:19.163 に答える