我正在尝试重新安排我的数据但是我遇到了困难.我的数据看起来像这样:
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)以及变量的相应日期和名称.
提前致谢!
使用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)