根据事务构建数据集

时间:2016-04-13 16:11:03

标签: r data-manipulation transactional

当我使用事务活动搜索构建数据集时,我只能找到消息板,它将数据集解构为事务而不是相反。我要做的是创建一个函数来构建基于当前库存和任何最近的事务活动的数据集。我已经尝试合并2个数据集并使用累积和,但它似乎不起作用。最后,我希望每个项目的前滚数量,然后按照转换表中列出的金额进行调整。

trans <- data.frame(day = c(3,3),
                id = c('a','b'),
                qty = c(10,-20))
inventory <- data.frame(day = c(1,1),
                    id = c('a','b'),
                    qty = c(10,20))
##Desired output
output <- data.frame(day = c(1,1,2,2,3),
                 id = c('a','b','a','b','a'),
                 qty = c(10,20,10,20,20))

1 个答案:

答案 0 :(得分:0)

首先按照你想要的方式创建矢量......

ts <- rep(seq(min(inventory$day),max(trans$day)),each = length(unique(inventory$id)))
ids <- rep(inventory$id, length(unique(ts)))
qty <- rep(inventory$qty, length(unique(ts)))
output <- data.frame(day = ts, id = ids)

然后合并事务data.frame并将所有na值设置为0

transM <- merge(trans,output, all.y = T)
transM$qty[is.na(transM$qty)] <- 0

最后得到结果

output$qty <- qty + transM$qty