SAS中文论坛

标题: SAS数据输入问题求救 [打印本页]

作者: shiyiming    时间: 2010-3-10 09:43
标题: SAS数据输入问题求救
请教各位大侠一个问题,不胜感激!
有一组数据格式如下:
BookNum SegIdt Carrier FltNum Org   Dest
  1              1        MU     5608   SHE   PVG
  1              2        AA     0288   PVG   ORD
  1              3        AA     3996   ORD   SHE
  2              1        AA     1716   LAX    STL
  2              2        AA     0521   STL    LAX

现在想把BookNum相同的数据放在同一行,即输出为:
BookNum SegIdt1  Carrier1  FltNum1  Org1  Dest1 SegIdt2 Carrier2 FltNum2  Org2   Dest2  SegIdt3 Carrier3 FltNum3 Org3  Dest3
  1              1           MU        5608       SHE   PVG     2           AA        0288      PVG    ORD      3          AA        3996      ORD   SHE
  2              1           AA         1716      LAX    STL     2           AA        0521      STL    LAX

多谢各位了!!!
作者: shiyiming    时间: 2010-3-11 06:18
标题: Re: SAS数据输入问题求救
[code:23lqbsod]%LET VARS = SegIdt Carrier FltNum Org Dest; %LET BY = BookNum;
%MACRO TRANSmcr;
        DATA B; DELETE; RUN;
        %LOCAL I; %LET I = 1;
        %DO%WHILE(%SCAN(&VARS, &I) NE);
                %LET VAR = %SCAN(&VARS, &I); %LET I = %EVAL(&I+1);
                PROC SORT DATA = A; BY &BY;
                PROC TRANSPOSE DATA = A(KEEP =&BY &VAR) OUT = At(DROP = _NAME_) PREFIX = &VAR;
                        BY &BY; VAR &VAR;
                DATA B; MERGE B At; RUN;
        %END;
%MEND TRANSmcr;
%TRANSmcr
;[/code:23lqbsod]

I am pretty sure somebody gave the code before.




欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/) Powered by Discuz! X3.2