【发布时间】:2019-02-09 10:52:50
【问题描述】:
大家好,我正面临一个独特的问题。如果特定项目 ID 所需的数量超过现有库存,我想根据条件找出库存转移。我们应该从其他 ID 转移库存。 例如。 item I60 可用于 7 个 ID。对于 E1,E6 可用库存少于数量,所以我想做的是将多余的库存从 E3(即 6-2 = 4)转移到 E1 和 E6。所以E1的转移是1,E6是2,E3的剩余SOH是3。希望大家能理解。
structure(list(ID = structure(c(1L, 6L, 7L, 3L, 5L, 2L, 4L, 8L,
1L, 7L, 3L, 5L, 2L, 9L, 8L, 1L, 7L, 3L, 5L, 2L, 9L, 8L, 1L, 7L,
3L, 5L, 2L, 9L, 8L, 1L, 7L, 3L, 5L, 2L, 9L, 8L, 1L, 7L, 3L, 5L,
2L, 9L, 8L, 1L, 7L, 3L, 5L, 2L, 9L), .Label = c("E1", "E2", "E3",
"E4", "E5", "E6", "E7", "E8", "E9"), class = "factor"), Item.Code = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L
), .Label = c("I60", "I67", "I68", "I69", "I70", "I71", "I72"
), class = "factor"), Quantity = c(2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 4L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), Stock_on_hand = c(1L,
0L, 2L, 6L, 2L, 2L, 2L, 0L, 6L, 3L, -1L, 1L, 2L, 9L, 1L, 5L,
-1L, 9L, 3L, 38L, 5L, 10L, 2L, 3L, 2L, 2L, 1L, 8L, 0L, 2L, 2L,
4L, 2L, 1L, 5L, 1L, -1L, 4L, 3L, 1L, 2L, 11L, 1L, 2L, 0L, 3L,
1L, 4L, 1L), Transfer = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L,
0L, 0L, 0L, 0L, 0L, 3L, 0L, 7L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 0L, 2L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 2L, 0L, 0L)), class = "data.frame", row.names = c(NA,
-49L))
应使用 R 代码生成突出显示的列
【问题讨论】:
-
我不知道您要做什么(我很难理解您的冗长说明)。您能否为您的最小样本数据包括您的预期输出;还清楚地说明(用尽可能少的词和尽可能简洁)创建新列的规则。避免使用特定领域的行话,而是专注于一般规则。
-
@MauritsEvers 我已经对自己的问题进行了更改。我希望你现在能明白了。
-
好的,我想我明白了。如果一件商品的总库存少于总数量,你想怎么办?
-
@Gregor 如果它小于应该从其他 ID 转移的数量。如果没有 ID 有多余的库存,它应该保持原样。
-
到目前为止您尝试过什么?看看哪些没有奏效会很有帮助,并使流程更加清晰
标签: r dplyr data.table