dataset
id include exclude
a . abc
a . xyz
b j abf
b . gtj
output required
a . abc,xyz
b j abf,gtj
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;
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 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.