带有非序数中断的反向求和

时间:2019-03-04 19:12:57

标签: r seq cumsum

试图用反向求和填充矩阵。必须保持多个休息时间。

我已经提供了我要完成的工作的样本矩阵。第一列是数据,第二列是我想要的。您将看到第2列已更新,以反映剩余的项目数。如果为0,则必须使用先前的数字。

update <- matrix(c(rep(0,4),rep(1,2),2,rep(0,2),1,3, 
  rep(10,4), 9,8,6, rep(6,2), 5, 2),ncol=2)

我尝试了多种方法来创建序列,并使用许多程序包(例如动物园)进行循环。困难的是,第1列中的数字可以在0,1,..,X之间,但小于第2列。

任何帮助或技巧都将不胜感激

编辑:第2列以给定值开头,该值可以代表任何起始值(即一个月初的广告资源)。第一栏将代表所进行的“购买”;因此,第2栏应反映可用的剩余物品总数。

1 个答案:

答案 0 :(得分:0)

以下内容将按照说明报告采购和库存余额:

starting_inventory <- 100
df <- data.frame(purchases=c(rep(0,4),rep(1,2),2,rep(0,2),1,3))
df$cum_purchases <- cumsum(df$purchases)
df$remaining_inventory <- starting_inventory - df$cum_purchases

结果:

   purchases cum_purchases remaining_inventory
1          0             0                 100
2          0             0                 100
3          0             0                 100
4          0             0                 100
5          1             1                  99
6          1             2                  98
7          2             4                  96
8          0             4                  96
9          0             4                  96
10         1             5                  95
11         3             8                  92