使用2列重塑数据帧

时间:2018-02-05 20:01:09

标签: r dataframe reshape

我想重塑一个看起来像这样的数据框:

x   y   z   Date
x1  y1  z1  1
x2  y2  z2  2
x3  y3  z3  3

这样的事情:

var  val  Date
x    x1   1
x    x2   2
x    x3   3
y    y1   1
y    y2   2
y    y3   3
z    z1   1
z    z2   2
z    z3   3

我试过这个,但是我以这种方式丢失了日期变量:

cols1<-colnames(y[-ncol(y)]) ## to drop the Date
df_new   <- stack(df, select=c(cols1))

有一种简单的方法吗?我搜索了论坛(显然有很多重塑问题),但我找不到一个试图做我需要做的事情。

这个论坛问题例如解决了另一个问题。原始数据框采用不同的格式,所有日期都是单独的列。我的日期只有一列: Reshaping data.frame from wide to long format

1 个答案:

答案 0 :(得分:0)

=If(vlookup($A2,sheet1!'$A$2:$E$7,match(B$1,sheet1!'$A$1:$E$5,0),0)="x",B$1,"")