在SAS中堆叠数据

pag*_*981 5 sas

我正在尝试重新安排我的数据但是我遇到了困难.我的数据看起来像这样:

date    a    b   c
====================
1996    5    7   8
1997    4    2   3    
1998    1    9   6
Run Code Online (Sandbox Code Playgroud)

我想要的是重新排列数据(可能是使用数组)来得到这个:

date  val var
=============
1996  5   a
1997  4   a
1998  1   a
1996  7   b
1997  2   b
1998  9   b
1996  8   c
1997  3   c
1997  6   c
Run Code Online (Sandbox Code Playgroud)

所以我基本上堆叠了变量(a,b,c)以及变量的相应日期和名称.

提前致谢!

Dom*_*azz 6

使用PROC TRANSPOSE来旋转数据.

首先按日期排序

proc sort data=have;
by date;
run;
Run Code Online (Sandbox Code Playgroud)

然后使用转置

proc transpose data=have out=want(rename=(COL1=VAL _NAME_=VAR));
by date;
var a b c;
run;
Run Code Online (Sandbox Code Playgroud)

最后,看起来你想要按VAR排序,然后是DATE

proc sort data=want;
by VAR date;
run;
Run Code Online (Sandbox Code Playgroud)