我有一个表显示每个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
任何人都可以帮忙吗?
答案 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;