R语言实现N周库存预测期末库存递归计算的方法咨询
更简便的实现方案
方案1:基础R实现(无需额外依赖)
利用累计求和逻辑直接计算,一行代码即可得到结果,运算效率最高:
library(tidyverse) # 仅构造数据用,核心计算逻辑无需加载 # 构造与需求匹配的原始数据 inventory <- tibble(week = 1, opening_stock = 100) forecast <- tibble(week = 2:10, forecast = c(11, 12, 10, 11, 10, 12, 11, 9, 12)) dat <- full_join(inventory, forecast) # 核心计算逻辑 dat$stock_projection <- dat$opening_stock[1] - c(0, cumsum(ifelse(is.na(dat$forecast), 0, dat$forecast)))
方案2:purrr::accumulate递归实现(逻辑更易读)
专门适配迭代递归场景,后续如果需要新增入库、安全库存校验等业务规则,修改成本极低:
library(tidyverse) dat <- dat %>% mutate(stock_projection = accumulate( .x = replace_na(forecast, 0), .f = ~ .x - .y, .init = first(opening_stock) )[-nrow(.)])
两种方案输出的stock_projection结果都和给出的样例完全一致。
内容的提问来源于stack exchange,提问作者Vasileios
相关产品推荐
相关产品推荐

