0

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

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 中这样做有什么想法吗?

4

2 回答 2

2

也许melt()您正在寻找“reshape2”包中的内容:

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
于 2012-10-13T08:12:41.997 回答
1

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

as.vector(t(dat[,-1]))
于 2012-10-13T19:17:17.193 回答