| PE | VS | LB | MH | GH |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 0 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 | 0 |
| output I want is |
| VS:MH |
| LB:MH |
| GH |
| PE:VS:LB:MH:GH |
values which has 1 to concatenate them.
Thanks in advance
One way
data have;
input PE VS LB MH GH;
datalines;
0 1 0 1 0
0 0 1 1 0
0 0 0 0 1
1 1 1 1 1
0 0 0 0 0
0 0 0 0 0
;
data want(keep=v);
length v $ 200;
array _{*} PE VS LB MH GH;
set have;
v='';
do i=1 to dim(_);
if _[i]=1 then v=catx(':', v, vname(_[i]));
end;
retain v;
run;
Result:
VS:MH LB:MH GH PE:VS:LB:MH:GH
One way
data have;
input PE VS LB MH GH;
datalines;
0 1 0 1 0
0 0 1 1 0
0 0 0 0 1
1 1 1 1 1
0 0 0 0 0
0 0 0 0 0
;
data want(keep=v);
length v $ 200;
array _{*} PE VS LB MH GH;
set have;
v='';
do i=1 to dim(_);
if _[i]=1 then v=catx(':', v, vname(_[i]));
end;
retain v;
run;
Result:
VS:MH LB:MH GH PE:VS:LB:MH:GH
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.