我有这些数据:
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
我试图融化数据,但它没有用。有什么建议吗?
答案 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