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;
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!
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.