Need advise:
I have data as this:
| Month | ID | Code | Count |
| 201806 | 30712566 | XB3 | 2 |
| 201806 | 30712566 | Z99 | 1 |
I need to have result as this:
| Month | ID | Code | Count |
| 201806 | 30712566 | XB3,Z99 | 3 |
Please advise and help
Thank you
data have;
infile cards truncover;
input Month ID Code $ Count;
cards;
201806 30712566 XB3 2
201806 30712566 Z99 1
;
data want;
set have;
by month id;
length _code $10;
retain _code;
if first.id then do; _code=code;_count=count;end;
else do; _code=catx(',',_code,code);_count+count;end;
if last.id;
run;
data have;
infile cards truncover;
input Month ID Code $ Count;
cards;
201806 30712566 XB3 2
201806 30712566 Z99 1
;
data want;
set have;
by month id;
length _code $10;
retain _code;
if first.id then do; _code=code;_count=count;end;
else do; _code=catx(',',_code,code);_count+count;end;
if last.id;
run;
Make sure the length of the _CODE variable is long enough to hold the maximum number of codes you expect and include extra characters for the commas.
I agree
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.