在r中以群体和某些条件累积的总和

时间:2013-01-30 15:58:34

标签: r

在具有相同m1n1的群组中,如果x1不为0且累计总和为{{1},我需要计算x1的累积总和如果y1不是0.任何帮助将不胜感激。

y1

因此对于 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的总和为9, 对于y1m1=2n1=3的累积和应为12,x1的总和为18。

1 个答案:

答案 0 :(得分: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
相关问题