Предположим data frame
, как показано ниже:
library(tidyverse)
df1 <- tibble(product = paste0("product", 1:4)) %>%
mutate(moneyAvailable = 20,
productPrice = rnorm(n = nrow(.), mean = 7, sd = 1))
df1
#> # A tibble: 4 x 3
#> product moneyAvailable productPrice
#> <chr> <dbl> <dbl>
#> 1 product1 20 6.53
#> 2 product2 20 8.67
#> 3 product3 20 6.15
#> 4 product4 20 6.60
Я хотел бы рассчитать промежуточную сумму, которая для 1-й строки вычитает productPrice
из moneyAvailable
, но использует полученное значение вычесть из productPrice
во 2-й строке и так далее ...
Окончательный результат будет примерно таким (что я жестко кодирую).
Моя собственная попытка состояла в том, чтобы попытаться используйте комбинацию lag
из dplyr
и cumsum
, но здесь они не имеют отношения.
df1$moneyRemaining = c(14.77, 6.95, 0.86, -7.05)
df1
#> # A tibble: 4 x 4
#> product moneyAvailable productPrice moneyRemaining
#> <chr> <dbl> <dbl> <dbl>
#> 1 product1 20 6.53 14.8
#> 2 product2 20 8.67 6.95
#> 3 product3 20 6.15 0.86
#> 4 product4 20 6.60 -7.05
Создано в 2020-01-28 пакетом Представить (v0.3.0)