2016-04-13 7 views
1

トランザクションアクティビティを使用して建物のデータセットを検索すると、トランザクションのデータセットを解体するメッセージボードしか見つけることができません。私がしようとしているのは、現在のインベントリと最近のトランザクションアクティビティに基づいてデータセットを構築する関数を作成することです。私は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

ここで、2日目はあなたのoutpから来ますut? – Zelazny7

+0

2日目はトランザクションがないため、1日目からのキャリーフォワードです。 3日目は2日目の値にトランザクションを加えた値です。 3日目にbを省略したのは出力が0なのでbを省略しましたが、値も有効です – user2748313

答えて

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をマージし、最終的に結果を得る0

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

にすべてのNA値を設定

output$qty <- qty + transM$qty 
関連する問題