2016-04-13 38 views
1

İşlem etkinliğini kullanarak veri kümeleri araştırırken, veri kümelerini yalnızca işlemin diğer bölümlerine değil işlemlere deşifre ettiği yerlerde bulabilirim. Yapmaya çalıştığım şey, geçerli envantere ve son işlem işlemlerine dayanan bir veri kümesi oluşturmak için bir işlev oluşturmaktır. 2 veri kümesini birleştirmeyi ve birikimli toplamı kullanmayı denedim, ancak işe yaramıyor. Sonuçta, her bir öğe için rollspace miktarlarını araştırıyorum ve daha sonra trans tablosunda listelenen miktarlara göre ayarlıyorum. İlk vektörlerini istediğiniz şekilde oluşturmakYapıları temel alarak veri oluşturma üzerine oluşturma

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

Gün 2, çıkışınızda nereden geliyor? ut? – Zelazny7

+0

Gün 2, işlem yapılmadığı için 1. günden itibaren sadece bir taşıma fow. 3. Gün, 2. günün değeri ve işlemlerin değeridir. Sıfır olacağından, çıktıda 3. günde b çıktım, ancak bir değer de uygulanabilir – user2748313

cevap

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) 

Ardından işlem data.frame birleştirme ve son olarak sonuç almak 0

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

tüm na değerleri ayarlamak

output$qty <- qty + transM$qty 
İlgili konular