首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当大于r中的库存时分配预测

当大于r中的库存时分配预测
EN

Stack Overflow用户
提问于 2021-01-02 16:04:12
回答 1查看 36关注 0票数 0

我有以下数据:

代码语言:javascript
运行
复制
item <- c('abc','def','ghi','jkl')
stocks <- c(100,200,140,150)
Forecast <- c(120,180,140,90) 

df <- data.frame(item,stocks,Forecast)
df$difference <- df$Forecast -df$stocks
df$difference <- ifelse(df$difference<0,0,df$difference)
df$new_forecast <- ifelse(df$difference>0,df$stocks,df$Forecast)
total_diff <- sum(df$difference)

我想将' total_diff‘分配给使用total_diff均值预测<库存的项目的预测。这应该隐蔽地完成,直到total_diff变为0。

例如:运行上述代码后的总差值是20。现在必须将20分配给'def','ghi','jkl‘项。每个人的预测都会增加6.67。现在,我们看到'ghi‘项的差异(预测股票)是6.67。现在,6.67必须在剩余的项目中重新分配。因此,'def‘和'jkl’的预测值分别增加了3.34。

下面是一个工作示例:

注意:实际数据包含1000+项

EN

回答 1

Stack Overflow用户

发布于 2021-01-02 18:22:19

基本上,以下内容将对您起作用:

代码语言:javascript
运行
复制
library(dplyr)
df %>% left_join(., 
                 df %>% 
                   filter(difference <= 0) %>% 
                   mutate(mean_distribution = total_diff / n()))
Joining, by = c("item", "stocks", "Forecast", "difference", "new_forecast")
  item stocks Forecast difference new_forecast mean_distribution
1  abc    100      120         20          100                NA
2  def    200      180          0          180          6.666667
3  ghi    140      140          0          140          6.666667
4  jkl    150       90          0           90          6.666667
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65537106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档