我有这个数据框5列的股票是当前_股票。我想一个新的列股票_超过_时间,然后计算股票_超过_时间=股票-销售+购买。
df=tibble(article=rep("article one",5),
week=c(1,2,3,4,5),
sales=10,
purchase=c(5,0,5,5,0),
stock=c(50))
# A tibble: 5 x 5
article week sales purchase stock
<chr> <dbl> <dbl> <dbl> <dbl>
1 article one 1 10 5 50
2 article one 2 10 0 50
3 article one 3 10 5 50
4 article one 4 10 5 50
5 article one 5 10 0 50
我的最终 Dataframe 应该如下所示:
# A tibble: 5 x 5
article week sales purchase stock stock_over_time
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 article one 1 10 5 50 NA
2 article one 2 10 0 50 45
3 article one 3 10 5 50 35
4 article one 4 10 5 50 30
5 article one 5 10 0 50 25
...其中库存_超时计算为:
50 - 10 + 5 = 45
45 - 10 + 0 = 35
35 - 10 + 5 = 30
30 - 10 + 5 = 25
我该怎么做?
3条答案
按热度按时间xiozqbni1#
您可以使用
cumsum()
:z18hc3ub2#
我们可以使用递归的方法来做这件事,它也应该工作的复杂情况
或者另一个选项是
purrr
中的accumulate
也可以写成
h79rfbju3#
下面的方法怎么样?
如果在dfs列中存在计算所需的任何NA,我将在以下之前执行此操作: