【发布时间】:2017-07-13 17:28:07
【问题描述】:
我有一个问题,我需要生产一定数量的单位,但有产能限制。 所以我有一个数据框,两列,一列用于我可以构建的容量,每一行是一周,还有一个分配列,这是交易用完的数量。 分配不能大于容量。
请参阅下面的交易金额为 10。
df <- data.frame(capacity = c(2,3,0,1,2,3),
allocation = c(0,0,0,0,0,0))
capacity allocation
2 0
3 0
0 0
1 0
2 0
3 0
amount <- 10
dfb <- data.frame(capacity = c(2,3,0,1,2,3),
allocation = c(2,3,0,1,2,2))
这就是我想要的结果
capacity allocation
2 2
3 3
0 0
1 1
2 2
3 2
我尝试了以下方法,但它没有给我正确的答案
dfb <- df %>%
mutate(deal = 0) %>%
mutate(deal = if_else(row_number(deal) == 1, amount, 0)) %>%
mutate(deal = cumsum(deal - pmin(capacity, deal)))
【问题讨论】: