【发布时间】:2020-08-28 14:46:23
【问题描述】:
我想修改cumsum 函数。我希望将负值更改为 0。此外,当有一个不同于 0 的新 D 值时,请使用 D-S。
下面的例子:
TD <- data.frame(product = rep("A", 7),
data = seq(as.Date("2020-01-01"), as.Date("2020-01-07"), by = "day"),
D = c(74, 0, 0, 0, 0, 20, 10), S = c(20, 30, 20, 5, 2, 4, 5))
TD <- TD %>% group_by(product) %>% mutate(result = cumsum(D) - cumsum(S))
> TD
# A tibble: 6 x 5
# Groups: product [1]
product data D S result I expected
<chr> <date> <dbl> <dbl> <dbl>
1 A 2020-01-01 74 20 54 54
2 A 2020-01-02 0 30 24 24
3 A 2020-01-03 0 20 4 4
4 A 2020-01-04 0 5 -1 0
5 A 2020-01-05 0 2 -3 0
6 A 2020-01-06 20 4 13 16
7 A 2020-01-07 10 5 18 21
【问题讨论】:
-
因为 16+10-5=21
-
你能帮帮我吗?