标题: 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]