熔化一列的数据

时间:2013-08-25 12:30:55

标签: r reshape

我有这些数据:

 datetime stock
 2010-01-01 4
 2010-01-02 7
 2010-01-03 2
 2010-01-04 9

我想做出这个输出:

 datetime stock val
 2010-01-01 4    stock
 2010-01-02 7    stock
 2010-01-03 2    stock
 2010-01-04 9    stock

我试图融化数据,但它没有用。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

我不知道你尝试了什么,但以下两个选项对我都有效。

假设您的data.frame被称为“mydf”:

选项1:来自Base R的stack

cbind(mydf[1], stack(mydf[-1]))
#     datetime values   ind
# 1 2010-01-01      4 stock
# 2 2010-01-02      7 stock
# 3 2010-01-03      2 stock
# 4 2010-01-04      9 stock

选项2:来自“reshape2”的melt

library(reshape2)
melt(mydf, id.vars="datetime")
#     datetime variable value
# 1 2010-01-01    stock     4
# 2 2010-01-02    stock     7
# 3 2010-01-03    stock     2
# 4 2010-01-04    stock     9