一个关于SAS转置的问题

2020-07-17 11:19:02 浏览数 (1)

PROC TRANSPOSE是SAS中用来对数据集进行行列转置的过程步,有时候可能需要经过多次PROC TRANSPOSE才能得到我们想的结果。今天无意中看到一篇博文,其中的例2(见上图),博主采用辅助变量加PROC TRANSPOSE来实现。下面我介绍另外两种方法。

  • 不用PROC TRANSPOSE,代码如下:
代码语言:txt复制
data want;
    array VARL6 DATE1 RES1 DATE2 RES2 DATE3 RES3;     
    NUM=1;     
    do until(last.NAME);         
        set ex1;         
        by NAME;         
        VARLNUM=DATE;         
        VARLNUM 1=RES;         
        NUM=NUM 2;     
    end;     
    drop NUM DATE RES; 
run;
  • 只用一次PROC TRANSPOSE,代码如下:
代码语言:txt复制
data temp;     
    set ex1;     
    array varlist DATE RES;     
    do I=1 to dim(varlist);
        VAR1=varlist(i);         
        output;     
    end; 
run;  

proc transpose data=temp out=want;     
    by NAME;     
    var VAR1; 
run;

0 人点赞