从行到单个列

时间:2012-10-13 08:06:00

标签: r reshape

有许多文件的数据格式如下

year Jan Feb Mar ...........Dec
1990 x1  x2   x3           x12    
1991 y1  y2   y3           y12

。 。

2000 z1 z2 z3             z12

我想转置每一行并将它们作为一列堆叠,以便将时间序列作为

x1
x2


..
x12
y1
y2
..
y12
z1
.
.
z12

我已经查看过reshape包,但不清楚它将如何应用于此问题。 在R?

中做这个的任何想法

2 个答案:

答案 0 :(得分:2)

“reshape2”软件包中的melt()可能是您正在寻找的内容:

library(reshape2)
DF <- read.table(header = TRUE, text = "Year Jan Feb Mar 
1990 x1  x2   x3     
1991 y1  y2   y3 ")

DF2 <- melt(DF, id.vars="Year")
DF2[order(DF2$Year), ]
#   Year variable value
# 1 1990      Jan    x1
# 3 1990      Feb    x2
# 5 1990      Mar    x3
# 2 1991      Jan    y1
# 4 1991      Feb    y2
# 6 1991      Mar    y3

答案 1 :(得分:1)

假设您的数据被称为dat,我建议:

as.vector(t(dat[,-1]))