Мне нужно построить прогноз баланса счета, но я борюсь с расчетом ежедневного баланса с использованием dplyr. Не работает этот подход, использующий dplyr :: lag, поскольку lag не видит измененное значение:
my_balance <- 100
df <- data.frame(day = 1:10, cost = c(-20,-30,-10,-30,-40,-20,-30,-35,-10,-12), revenue = c(100,20,0,12,7,100,20,30,15,12))
df %>%
mutate(balance = lag(balance, default = my_balance) + cost + revenue)
Результат:
day cost revenue balance
1 1 -20 100 180
2 2 -30 20 90
3 3 -10 0 90
4 4 -30 12 82
5 5 -40 7 67
6 6 -20 100 180
7 7 -30 20 90
8 8 -35 30 95
9 9 -10 15 105
10 10 -12 12 100
Ожидаемый результат:
day cost revenue balance
1 1 -20 100 180
2 2 -30 20 170
3 3 -10 0 160
4 4 -30 12 142
5 5 -40 7 109
6 6 -20 100 189
7 7 -30 20 179
8 8 -35 30 174
9 9 -10 15 179
10 10 -12 12 179
Что я могу использовать для создания баланса на строку, используя предыдущую вычисленную сумму?