总和,直到达到给定值

LBe*_*Bes 5 if-statement r

所以我认为我在这里得到了我的问题的答案:累积总和直到达到最大值,然后在下一行从零开始重复,但实际上并非如此.

我想要做的是能够对一列进行求和,直到在另一列中达到给定值.如果我们采取例如:

Col1   Col2   Col3   
 0      12     
 0      14
 1      2
 2      0.5
 1      12
 4      3
 3      2
Run Code Online (Sandbox Code Playgroud)

我希望能够将第2列的所有值加起来,直到第1列达到4为止.这将给出:12 + 14 + 2 + 0.5 + 12

我对R来说是全新的,我真的不知道如何继续.

我所拥有的是来自csv文件的数据框:

mydata = read.csv("mycsv.csv")
Run Code Online (Sandbox Code Playgroud)

jos*_*ber 5

您可以使用cumsum(mydata$Col1 == 4) == 0获取Col1中是否已达到4的逻辑向量.然后,您可以使用简单的索引从Col2中获取相关元素:

sum(mydata$Col2[cumsum(mydata$Col1 == 4) == 0])
# [1] 40.5
Run Code Online (Sandbox Code Playgroud)