Here is what I have:
ID Category
1 Dog
1 Cat
2 Horse
3 Dog
3 Horse
3 Cat
And what I need is something along the lines of this:
ID Category
1 Dog + Cat
2 Horse
3 Dog + Cat + Horse
I 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
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.