BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
pfdjadsfdsafas
Calcite | Level 5

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!

1 ACCEPTED SOLUTION

Accepted Solutions
Tom
Super User Tom
Super User

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

View solution in original post

1 REPLY 1
Tom
Super User Tom
Super User

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

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

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!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 675 views
  • 0 likes
  • 2 in conversation