2016-03-28 16 views
0

veri döndürülmesi için:programı bu gibi bir veri kümesi var R

item  01/02/2016 01/03/2016 01/04/2016 
-------  --------- --------- ---------- 
juice   0   0   4 
cola   1   3   6 
bananas  5   9   1 

I sonuç şöyle böyle bir şekilde veri dönmesine eder:

item date    amount 
------- -----   ------ 
juice 01/02/2016  0 
juice 01/03/2016  0 
juice 01/04/2016  4 
cola 01/02/2016  1 
cola 01/03/2016  3 
cola 01/04/2016  6 
bananas 01/02/2016  5 
bananas 01/03/2016  9 
bananas 01/04/2016  1 

Ben excel içinde yapıyorum, ama ben bunu R içinde otomatikleştirmek için bir program yazmak istiyorum. Bu konuda nasıl giderdim?

Teşekkürler!

+0

bak melt' 'de "reshape2" veya "data.table" dan, ya tidyr'dan "topla" a bak. – A5C1D2H2I1M1N2O1R2T1

+0

R tabanında, 'stack' ve 'cbind' bir arada hile yapmalıdır. – A5C1D2H2I1M1N2O1R2T1

cevap

1

bu deneyin, ama değişken adı tarih olamaz, bu nedenle yeniden şekillendirilmesi sonra tarihlerine değişken isimleri yeniden eşleştirmek:

> df 
     item d01 d02 d03 
    1 juice 0 0 4 
    2 cola 1 3 6 
    3 bananas 5 9 1 
    > library(reshape2) 
    > df2 <- melt(df, id.vars=1) 
    > df2 
     item variable value 
    1 juice  d01  0 
    2 cola  d01  1 
    3 bananas  d01  5 
    4 juice  d02  0 
    5 cola  d02  3 
    6 bananas  d02  9 
    7 juice  d03  4 
    8 cola  d03  6 
    9 bananas  d03  1 
    > df2[order(df2$item),] 
     item variable value 
    3 bananas  d01  5 
    6 bananas  d02  9 
    9 bananas  d03  1 
    2 cola  d01  1 
    5 cola  d02  3 
    8 cola  d03  6 
    1 juice  d01  0 
    4 juice  d02  0 
    7 juice  d03  4