R:For循环从多个数据帧捕获数据

时间:2019-07-04 06:56:01

标签: r dataframe for-loop

我想创建一些函数以获取所需的输出。我正在学习R,因此在创建代码方面遇到困难。

这些是我想为更大的数据集创建的示例数据帧

数据框1:

 Item   LC1    LC2   LC3
8T4121  MW92    OY01    RM11
AB7654  MW92    WK14    RM11
AB7654  MW92    WK14    RS11

数据框2:

 Item   LC   custfcst
8T4121  MW92    10
8T4121  OY01    12
8T4121  RM11    10
AB7654  MW92    20
AB7654  WK14    10
AB7654  RM11    8
AB7654  RS11    21

数据框3:

 Item    LC     ToLC    Rolledfcst
8T4121  MW92    OY01    22
8T4121  OY01    RM11    10
AB7654  MW92    WK14    30
AB7654  WK14    RM11    12
AB7654  WK14    RS11    10

数据框4:

Item    LC      Safetystock(SS)       X
8T4121  MW92    15                   .25
8T4121  OY01    7                    .25
8T4121  RM11    5                    .25
AB7654  MW92    30                   .25
AB7654  WK14    8                    .25
AB7654  RM11    20                   .25
AB7654  RS11    15                   .25

预期输出:

 Item   LC1      Pcntg     Share       RemSS    FinalSS        Leftover
8T4121  MW92   10/(22+10)  Pcntg*SS  SS-Share   Share+X*RemSS  SS-FinalSS
8T4121  OY01   12/(10+12)  Pcntg*SS  SS-Share   Share+X*RemSS  SS-FinalSS
8T4121  RM11       NA

注意:此处应在数据框4的SafetyStock中为相同项目添加项目8T4121和LC1的剩余量,否则只有下一次计算应在项目8T4121和OY01进行

步骤: 1.在“数据框”中,是从LC1-> LC2-> LC3

流出物料的通道
  1. 对于输出,应该从DF2中获取每个项custfcst,从DF3中获取Rolledfcst以计算Pcntg
  2. 类似地,应该计算Share,RemSS,FinalSS,剩余量

  3. 在计算完第一个物料的数量之后,应将剩余物料添加到同一物料的下一个LC的安全库存中

  4. 当我们最后到达数据帧1中某个特定项目的LC时,则仅应添加前一个Lc的SS + Leftover。不需要进一步的计算。

对于AB7654项,在周14进行星号计算时,应将剩余的SS平均分配给RM11和RS11

1 个答案:

答案 0 :(得分:0)

这是一个print (hdfs.ls("/vs_co2_all_2019_v1.csv")) 解决方案,该解决方案多次使用Tidyverse将数据帧连接在一起:

left_join