SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 666|回复: 1
打印 上一主题 下一主题

SAS数据输入问题求救

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-3-10 09:43:40 | 只看该作者

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

多谢各位了!!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-3-11 06:18:23 | 只看该作者

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.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-3-3 19:10 , Processed in 0.091223 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表