could you please try the below one
data dataset1;
input mut :$100.;
code=prxchange('s/(\w\d+)(\w.*)/$1/',-1,compress(mut));
cards;
M200V/I
M200M/A/N/K
M200V/K
M200M/K
M200I/K
K65K
K65K/A/B
K65J
M200Z
;
data dataset12;
set dataset1;
do i = 1 to countw(compress(mut),'/');
letters=prxchange('s/(\w\d+)(\w.*)/$2/',-1,scan(compress(mut),i,'/'));
output;
end;
drop i;
run;
data dataset2;
input mut2 :$100.;
code=prxchange('s/(\w\d+)(\w.*)/$1/',-1,compress(mut2));
cards;
M200V/I/K
K65A/B/C
C140J
;
data dataset22;
set dataset2;
do i = 1 to countw(compress(mut2),'/');
letters=prxchange('s/(\w\d+)(\w.*)/$2/',-1,scan(compress(mut2),i,'/'));
output;
end;
drop i;
run;
proc sort data=dataset22 nodupkey;
by code letters;
run;
proc sort data=dataset12 ;
by code letters;
run;
data want;
merge dataset12(in=a) dataset22(in=b);
by code letters;
if a and b;
run; proc sort data=want nodupkey; by mut; run;
... View more