【笔记】使用PROC TRANSPOSE过程步对数据集进行转置时如何保持日期变量的时间顺序
时间:2014-01-21 17:13:35
收藏:0
阅读:540
有一个数据集如下所示:

如果直接进行转置。
SAS程序:
proc transpose data=test out=outx1 (drop=_name_);
by id;
var amount;
id sasdate;
idlabel sasdate;
run; 则转置的数据集如下所示:

但先通过PROC SQL过程步得到一个关于时间顺序的宏变量,然后在数据步中利用RETAIN则可以解决时间变量未按顺序排列的问题。
SAS程序:
proc sort data=test; by id sasdate; run;
proc sql noprint; select distinct cats(‘_‘,put(sasdate,date9.)) into :alldates separated by ‘ ‘ from test order by sasdate; quit; %put &alldates; data outx1; retain id &alldates; set outx1; run;
最终结果:

原文:http://www.cnblogs.com/liyongzhao/p/3527555.html
评论(0)
