chaosxiao 发表于 2012-11-2 22:13 
data a;
input id $6. name $10.;
cards;
程序没有编完整,我补齐。
data a;
input id $6. name $10.;
cards;
X10001 张三
X21001 张三
X10001 李四
X20012 李四
X30052 李四
X10112 王五
X30998 王五
;
run;
proc sort data=a;by name;run;
data aa;
set a;
if substr(id,1,2)="X1" then do;id1981=id;output;end;
run;
data bb;
set a;
if substr(id,1,2)="X2" then do;id1998=id;output;end;
run;
data cc;
set a;
if substr(id,1,2)="X3" then do;id2004=id;output;end;
run;
/*proc sort data=aa;by name;run;*/
/*proc sort data=bb;by name;run;*/
/*proc sort data=cc;by name;run;*/
data x;
merge aa bb cc;
by name;
run;
data x; set x; drop id; run;/*必需去掉id,不如其它id号的记录会不出现*/
data z;
merge a x; by name;
run;
data z; set z;
if substr(id,2,1)=1 then id1981=" ";
else if substr(id,2,1)=2 then id1998=" ";
else if substr(id,2,1)=3 then id2004=" ";
run;