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

dataset 

id include exclude

a . abc

a . xyz

b j abf

b . gtj

 

output required 

 

a . abc,xyz

b j abf,gtj

 

1 ACCEPTED SOLUTION

Accepted Solutions
RW9
Diamond | Level 26 RW9
Diamond | Level 26

Its a good idea to foloow the guidance given by the Post button.  Clarify the test data and the output by describing the relation between them.  At a guess, I would say include is a list of inclusions separated by ", " and exclude is a the same.  So you want one id and two lists yes?  If so then (note how I put the test data in a datastep):

data have; 
  infile datalines dlm="," dsd;
  input id $ include $ exclude $;
datalines;
a,,abc
a,,xyz
b,j,abf
b,,gtj
;
run;

data want (drop=include exclude);
  set have;
  length inc exc $200;
  retain inc exc;
  by id;
  if first.id then call missing(inc,exc);
  inc=ifc(include ne "",catx(',',inc,include),inc);
  exc=ifc(exclude ne "",catx(',',exc,exclude),exc);
  if last.id then output;
run;

View solution in original post

1 REPLY 1
RW9
Diamond | Level 26 RW9
Diamond | Level 26

Its a good idea to foloow the guidance given by the Post button.  Clarify the test data and the output by describing the relation between them.  At a guess, I would say include is a list of inclusions separated by ", " and exclude is a the same.  So you want one id and two lists yes?  If so then (note how I put the test data in a datastep):

data have; 
  infile datalines dlm="," dsd;
  input id $ include $ exclude $;
datalines;
a,,abc
a,,xyz
b,j,abf
b,,gtj
;
run;

data want (drop=include exclude);
  set have;
  length inc exc $200;
  retain inc exc;
  by id;
  if first.id then call missing(inc,exc);
  inc=ifc(include ne "",catx(',',inc,include),inc);
  exc=ifc(exclude ne "",catx(',',exc,exclude),exc);
  if last.id then output;
run;

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


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
  • 2153 views
  • 0 likes
  • 2 in conversation