【问题标题】:Sum until a given value is reached求和直到达到给定值
【发布时间】:2015-08-20 17:24:53
【问题描述】:

所以我以为我在这里找到了问题的答案: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")

【问题讨论】:

    标签: r if-statement


    【解决方案1】:

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

    sum(mydata$Col2[cumsum(mydata$Col1 == 4) == 0])
    # [1] 40.5
    

    【讨论】:

      猜你喜欢
      • 2019-02-21
      • 2020-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 2018-08-05
      相关资源
      最近更新 更多