我有以下数据:
word Jan-2013 Feb-2013 Mar-2013 A 1 2 3 B 5 2 4
我想将多个日期列转换为一个命名日期,并为该值添加一个附加列。
word date value A Jan-2013 1 A Feb-2013 2 A Mar-2013 3 B Jan-2013 5 B Feb-2013 2 B Mar-2013 4
有人可以帮忙吗?
由于
答案 0 :(得分:7)
除了Metrics的答案之外,这里还有两个R选项(假设你的data.frame
被称为“mydf”):
cbind(mydf[1], stack(mydf[-1]))
library(reshape)
melt(mydf, id.vars="word")
我不是Excel用户,但由于此问题也被标记为“Excel”,我建议使用Tableau Reshaper Excel add-on。
对于您的示例,它非常简单:
安装附加组件并激活后,转到“Tableau”菜单。
选择包含要取消堆叠的值的单元格。单击“确定”。
查看结果。
答案 1 :(得分:3)
使用基础R中的reshape
(df1是您的数据框)
reshape(df1,times=names(df1)[-1],timevar="date",varying=names(df1)[-1],v.names="value",new.row.names=1:6,ids=NULL,direction="long")
word date value
1 A Jan.2013 1
2 B Jan.2013 5
3 A Feb.2013 2
4 B Feb.2013 2
5 A Mar.2013 3
6 B Mar.2013 4