【问题标题】:Cumulative sums for the previous row上一行的累计和
【发布时间】:2016-04-10 22:42:40
【问题描述】:

我正在尝试获取上一行/年的累积总和。运行cumsum(data$fonds) 为我提供了相邻销售的运行总数,这对我想做的事情不起作用。我希望我的数据如下所示:

   year      fond   cumsum  
1  1950       0       0  
2  1951       1       0
3  1952       3       1
4  1953       0       4
5  1954       0       4

任何帮助将不胜感激。

【问题讨论】:

  • cumsum 需要延续上一年的总数,因此 1954 年的 4 是正确的。

标签: r sum cumulative-sum


【解决方案1】:
data$cumsum <- c(0, cumsum(data$fonds)[-nrow(data)])

【讨论】:

    【解决方案2】:

    通过data.table,我们可以使用shift 函数。默认情况下,它给出type="lag"

    library(data.table)
    setDT(df1)[, Cumsum := cumsum(shift(fond, fill= 0))]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-09
      • 2014-08-11
      • 1970-01-01
      • 2018-02-09
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      相关资源
      最近更新 更多