Я пытаюсь создать функцию в 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 предыдущих дней.
Ожидаемые результаты будут выглядеть следующим образом:
Спасибо за вашу помощь!