首页 文章

在R中查找主数据

提问于
浏览
0

我对以下主题有疑问 .

使用Excel后,执行此操作的工作量很高 . 现在我想用自动方式用R来做 .

我有不同型号的洗衣机:

对于每个模型,我有一个包含所有必需组件的data.frame . 以1型号为例

Component = c("A","B","C","D","E","F","G","H","I","J")
Number = c(1,1,1,2,4,1,1,1,2,3)
Model.A= data.frame(Component,Quantity)

作为第二个信息,我有一个包含所有组件的data.frame,所有组件都使用这些组件,另外还有这些组件的实际库存 .

Component = c("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z")
Stock = c(100,102,103,105,1800,500,600,400,50,80,700,900,600,520,35,65,78,95,92,50,36,34,96,74,5,76)

Comp.Stock = data.frame(Component,Stock)

第三个也是最后一个Inforamtion是关于每周 生产环境 计划的 . 我每周有4个 生产环境 计划=计划1个月 . 我得到了一个带有洗衣机型号的数据框架,它将在接下来的4周内 生产环境 ,还有它们的数量 .

pr.Models= c("MODEL.A","MODEL.B","MODEL.C","MODEL.D")
Quantity= c(15000,1000,18000,16000,5000)

Production= data.frame(pr.Models,Quantity)

我现在的问题是,将这些信息组合在一起,我可以将生成的模型(最后的信息)与组件进行比较 . 首先是每个Model的使用组件,另外还有data.frame,它包含所有组件和库存的信息 .

如果组件库存不足以从 生产环境 计划中生成模型,则目标是获取信息和警告 .

后:(许多相同的组件被不同的模型使用)

希望你理解我的意思,并可以帮助我解决这个问题 .

谢谢=)

编辑:

我无法完成你的所有步骤:

也许这个想法也很好,但我知道如何做到这一点:

也许可以将每个生成的模型( 生产环境 )与使用的组件合并 . (考虑到 生产环境 数量和每台洗衣机的数量需求) .

我首选的输出是自动生成具有所需组件的每个 生产环境 模型的数据帧 .

在下一步中,它应该能够将这些数据与Comp.Stock合并,以查看需要多长时间的组件并将其与库存进行比较 .

你有这方面的想法吗?

也许我对于呈现的方式是愚蠢的......我真的需要一种自动方式,因为有超过4k种不同的组件和超过180种不同型号的洗衣机 .

谢谢

Comp.Stock另外还有所有使用的型号及其数量( 生产环境 )

1 回答

  • 5

    您需要将模型名称作为第一个data.frame中的列(以匹配 Production

    Model.A$pr.Models <- 'MODEL.A'
    

    然后你可以合并 . 请注意,有两个“数量”列,您不希望按以下方式合并:

    merged <- merge(merge(Model.A, Comp.Stock),Production, by='pr.Models')
    

    Extra 生产环境 后你手头有多少:

    transform(transform(merged, Needed = Quantity.x * Quantity.y), Extra = Stock - Needed)
    ##    pr.Models Component Quantity.x Stock Quantity.y Needed  Extra
    ## 1    MODEL.A         A          1   100      15000  15000 -14900
    ## 2    MODEL.A         B          1   102      15000  15000 -14898
    ## 3    MODEL.A         C          1   103      15000  15000 -14897
    ## 4    MODEL.A         D          2   105      15000  30000 -29895
    ## 5    MODEL.A         E          4  1800      15000  60000 -58200
    ## 6    MODEL.A         F          1   500      15000  15000 -14500
    ## 7    MODEL.A         G          1   600      15000  15000 -14400
    ## 8    MODEL.A         H          1   400      15000  15000 -14600
    ## 9    MODEL.A         I          2    50      15000  30000 -29950
    ## 10   MODEL.A         J          3    80      15000  45000 -44920
    

    如果 Extra 为负数,则您严重缺乏 .

    transform(transform(merged, Needed = Quantity.x * Quantity.y), Extra = Stock - Needed)$Extra < 0
    ##  [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
    

    任何部分都不够 .

    作为一个功能:

    Not.Enough.Parts <- function(Model, Comp.Stock, Production) {
      Model$pr.Models <- toupper(substitute(Model))
      merged <- merge(merge(Model, Comp.Stock),Production, by='pr.Models')
      extra <- transform(transform(merged, Needed = Quantity.x * Quantity.y), Extra = Stock - Needed)
      retval <- extra$Extra < 0
      names(retval) <- extra$Component
      return(retval)
    }
    
    Not.Enough.Parts(Model.A, Comp.Stock, Production)
    ##    A    B    C    D    E    F    G    H    I    J 
    ## TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
    

相关问题