R dplyr:使用上一个行值和一个函数计算行值

我正在尝试在R中创建一个函数,该函数使我可以确定产品缺货的日期。我希望此功能能够处理计划的接收订单并显示库存单位的“运行总额”。下面是我到目前为止可以做的可复制的想法。

library(tidyverse)
library(lubridate)

runrate <- 25

onHand <- tibble(date = Sys.Date(), OnHand = 2000)

ord_tbl <- tibble(date = c(ymd("2020-04-09"), ymd("2020-04-12"), ymd("2020-04-17")), onOrder = c(200, 500, 100))



date_tbl <- tibble(date = seq.Date(from = Sys.Date(), to = Sys.Date() + 180, by = "day")) %>% 
                mutate(Month = month(date, label = TRUE))

joined_tbl <- date_tbl %>% 
    left_join(onHand) %>% 
    left_join(ord_tbl) 

joined_tbl <- joined_tbl %>% 
    mutate(OnHand = coalesce(joined_tbl$OnHand, 0),
           onOrder = coalesce(joined_tbl$onOrder, 0),
           id = row_number()) %>% 
    mutate(usage = id * runrate) %>% 
    select(id, everything()) 

start_inv_value <- joined_tbl %>% 
    filter(date == Sys.Date()) %>% 
    select(OnHand)

joined_tbl %>% 
    mutate(projected_On_Hand = start_inv_value$OnHand - (id * usage) + onOrder)

理想情况下,我想获取库存的初始值,然后减去每日使用量,并添加预期会收到的单位。但是,我无法降低前几天的projected_on_hand值。

预期结果将如下所示:

Anticipated Results

谢谢您的帮助!