所以我认为我在这里得到了问题的答案:Cumulative sum until maximum reached, then repeat from zero in the next row但实际上并非如此。
我想要做的是能够对列进行求和,直到在另一列中达到给定值。如果我们采取例如:
Col1 Col2 Col3
0 12
0 14
1 2
2 0.5
1 12
4 3
3 2
我希望能够将第2列的所有值加起来,直到第1列达到4为止。这将给出:12 + 14 + 2 + 0.5 + 12
我对R完全不熟悉,我真的不知道如何继续。
我所拥有的是来自csv文件的数据框:
mydata = read.csv("mycsv.csv")
答案 0 :(得分:5)
您可以使用cumsum(mydata$Col1 == 4) == 0
获取Col1中是否已达到4的逻辑向量。然后,您可以使用简单的索引从Col2中获取相关元素:
sum(mydata$Col2[cumsum(mydata$Col1 == 4) == 0])
# [1] 40.5