Small correction.
data have ;
input id (T1-T12) ($) ;
cards ;
1 E A E B A A E A C B E F
2 F A E F E E E E A E E E
3 A C C E E E A F D D E F
4 A F F D B B C A A A C C
5 B B C C D A A A B E E F
;
data want(keep = id id2 same);
set have;
id2 = .;
length same $ 1000;
same = '';
array t {*} $ t1 - t12;
array tt{12} $ _temporary_;
do i = 1 to dim(tt);
tt[i] = t[i];
end;
if _N_ = 1 then do;
dcl hash h(dataset : "have(rename = id = id2)", ordered : "Y");
h.definekey("id2");
h.definedata("id2");
do i = 1 to dim(t);
h.definedata(vname(t[i]));
end;
h.definedone();
dcl hiter hi("h");
end;
hi.setcur(key : id);
do while (hi.next() = 0);
do i = 1 to dim(t);
if t[i] = tt[i] then same = catx(',', same, vname(t[i]));
end;
output;
end;
run;
... View more