程序来转移R中的数据

时间:2016-03-28 03:34:41

标签: r

我有一个如下所示的数据集:

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

我希望以最终结果如下所示的方式来转动数据:

 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

我一直在excel中做这件事,但是我想编写一个程序来自动执行它。我怎么会这样做?

谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个,但变量名不能是日期,所以将变量名重新映射到重塑后的日期:

 > 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