zoukankan      html  css  js  c++  java
  • 使用PROC TRANSPOSE过程步对数据集进行转置时如何保持日期变量的时间顺序

    有一个数据集如下所示:

    如果直接进行转置。

    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;

    最终结果:

  • 相关阅读:
    Docker
    Docker
    VIM
    Python
    Python
    VIM
    Python
    其他
    Java
    Java
  • 原文地址:https://www.cnblogs.com/liyongzhao/p/3527555.html
Copyright © 2011-2022 走看看