Hi There Please try the following codes. This should work. However if you have something like aa1 aa2 or abc1 abc2 then you have to add some mode lines to the code. a similar pattern should work. data want; set have; var1=var; run; data want; set want; var1=tranwrd(var1,'.sas7bdat',''); if index(var1,'.sas7bda') then delete; run; proc sort data=want out=want1; by descending var1; run; data want1; set want1; j=index(var1,"_"); k= substr(var1,j+1); l = index(k,"_"); m = substr(k,l+1); q1 = substr(var1,1,j-1); q2 = substr(k,1,l-1); q3 = substr(k,l+1) ; run; data want1; set want1; var2=k*1; if j=0 then do; k=substr(var1,2); var2=k*1; q1=substr(var1,1,1); end; run; data want2; set want1; q4=q1; if var2=. then do; q4=compbl(q1||'_'||q3); end; run; proc sort data=want2; by q4; run; data want3; set want2; by q4; if first.q4 ; run; proc sort data=want3 out= want_final(keep=var); by var; run;
... View more