首页 > 其他 > 详细

【笔记】使用PROC TRANSPOSE过程步对数据集进行转置时如何保持日期变量的时间顺序

时间:2014-01-21 17:13:35      阅读:540      评论:0      收藏:0      [点我收藏+]

有一个数据集如下所示:

bubuko.com,布布扣

如果直接进行转置。

SAS程序:

proc transpose data=test out=outx1 (drop=_name_);                 
    by id;                                                         
    var amount;                                                    
    id sasdate;                                                    
    idlabel sasdate;                                               
run; 

则转置的数据集如下所示:

bubuko.com,布布扣

但先通过PROC SQL过程步得到一个关于时间顺序的宏变量,然后在数据步中利用RETAIN则可以解决时间变量未按顺序排列的问题。

SAS程序:

bubuko.com,布布扣
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;
bubuko.com,布布扣

最终结果:

bubuko.com,布布扣

【笔记】使用PROC TRANSPOSE过程步对数据集进行转置时如何保持日期变量的时间顺序

原文:http://www.cnblogs.com/liyongzhao/p/3527555.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!