【发布时间】:2020-04-08 19:02:39
【问题描述】:
我正在尝试在 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 值。
预期结果如下所示:
感谢您的帮助!
【问题讨论】:
-
我对你的预期输出有点困惑......对于
id = 2,你似乎想要1975 - 50 + 200 = 2125。我想我不清楚你想如何计算projected_On_Hand。除非我弄错了,否则您的描述和预期结果不符? -
@paqmo 感谢您查看我的问题并花时间回复。 OnHand 数量是当前可用的数量。到一天结束时,我将消耗 25 单位的 2000,产量为 1,975。第二天的 OnHand 数量应该是前一天的 1,975 个单位,减去 2020 年 4 月 9 日使用的 25 个单位,剩下 1950 个单位。然后,我将添加计划到达的 200 个单位,这将增加到该天的projected_on_hand 到2,150。