转置数据并仅保留所需的数据

时间:2016-04-30 03:18:46

标签: sas transpose

我有一个表显示每个ID的3个obs和4个字段(ID姓氏,名字和电话号码),我更喜欢将lastname转换为3个字段,而对于firstname字段,我只想保留与1st相关的字段姓氏和电话号码,我只想保留与第3个(最后一个)姓氏相关的名字。

Table: 

ID Lastname FirstName TelephoneNumber 
001 Y       A         123 
001 W       B         345
001 Z       C         567
002 M       D         789
002 N       E         912 
002 L       F         934



Table want: 
ID LastName_1  LastName_2  LastName_3  FirstName TelephoneNumber
001 Y          W           Z           A         567 
002 M          N           L           D         934

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以使用PROC SUMMARY IDGROUP执行此操作。我会留给你研究语法。

data id;
    input (ID Lastname FirstName)(:$3. 2*:$1.) TelephoneNumber;
    cards; 
001 Y       A         123 
001 W       B         345
001 Z       C         567
002 M       D         789
002 N       E         912 
002 L       F         934
;;;;
    run;
proc print;
    run;
proc summary nway;
   class id;
   output
      out=id2   
      idgroup(out(firstname)=)
      idgroup(last out(telephonenumber)=)
      idgroup(out[3](lastname)=)
      ;
   run;
proc print;
   run;