有许多文件的数据格式如下
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?
中做这个的任何想法答案 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]))