Here is what I have:
ID Category
1 Dog
1 Cat
2 Horse
3 Dog
3 Horse
3 CatAnd what I need is something along the lines of this:
ID Category
1 Dog + Cat
2 Horse
3 Dog + Cat + HorseI can think of some very roundabout ways to do this but there has to be a simple quick way. Thanks!
It is pretty trivial. Note that you will need to make a NEW variable to hold the list. You will probably need to make it longer than the original variable.
data have;
input ID Category $20.;
cards;
1 Dog
1 Cat
2 Horse
3 Dog
3 Horse
3 Cat
;
data want ;
do until (last.id);
set have;
by id;
length new_category $200 ;
new_category=catx(' + ',new_category,category);
end;
drop category;
run;
Obs ID new_category 1 1 Dog + Cat 2 2 Horse 3 3 Dog + Horse + Cat
It is pretty trivial. Note that you will need to make a NEW variable to hold the list. You will probably need to make it longer than the original variable.
data have;
input ID Category $20.;
cards;
1 Dog
1 Cat
2 Horse
3 Dog
3 Horse
3 Cat
;
data want ;
do until (last.id);
set have;
by id;
length new_category $200 ;
new_category=catx(' + ',new_category,category);
end;
drop category;
run;
Obs ID new_category 1 1 Dog + Cat 2 2 Horse 3 3 Dog + Horse + Cat
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!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.