[英]cumulative sum by group and under some condition in r
在具有相同的m1
和n1
的組內,如果x1
不為0,則需要計算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=2
, n1=2
, x1
的累積和應為9, y1
為9,對於m1=2
, n1=3
, x1
的累積和應為12, y1
為18。
這是你想要的? (使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.