2013-08-25 7 views
1

У меня есть эти данные:Melt данные для одного столбца

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 

Я пытался расплавить данные, но это не сработало. Какие-либо предложения?

ответ

4

Я не знаю, что вы пробовали, но для меня работают оба следующих варианта.

Если предположить, что data.frame называется "mydf":

Вариант 1: stack из Базового R

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: melt от "reshape2"

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