I have data set X that can have variable number of columns named c1, c2, c3 etc cn.
I need to concatenate them in one string. I need to have code that works regardless what the number of those columns is.
Is there a way to concatenate with some c: wildcard or similat to that?
Tom,
how about:
data have;
input id (c1-c5)($);
cards;
1 a b c d e
2 d r b t t
;
data want;
length newvar $ 50;
set have;
newvar=catt(of c:);
proc print;run;
Obs newvar id c1 c2 c3 c4 c5
1 abcde 1 a b c d e
2 drbtt 2 d r b t t
Linlin
Thanks. But is there a possibility to add some separator or space between values?
yes.
data have;
input id (c1-c5)($);
cards;
1 a b c d e
2 d r b t t
;
data want;
length newvar $ 50;
set have;
newvar=catx('+',of c:);
run;
proc print;run;
Obs newvar id c1 c2 c3 c4 c5
1 a+b+c+d+e 1 a b c d e
2 d+r+b+t+t 2 d r b t t
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.