Dear ,
By using the following code I need output for AESERN variable for observations 3 and 4 as Yes (1) and Yes (1,2). But my output is without space between the 'YES' and parenthesis. Please help in my code.
My output=Yes(1) and Yes(1,2)
data one;
input AESER $ AESDTH $ AESLIFE $ AESHOSP $ AESCONG $ AESDISAB $ AESMIE $ INFECDIS $;
datalines;
N N N N N N N N
Y N N N N N N N
Y Y N N N N N N
Y Y Y N N N N N
;
run;
data TWO;
length AESERN $20;
set one;
array AESP {7} $ AESDTH -- INFECDIS;
array POS {7} $1 ;
drop I POS:;
AESERN =ifc( AESER = 'N' , 'No', 'Yes');
if AESERN = 'Yes' and whichc('Y', of AESP[*]) then do;
do I = 1 to 7;
if AESP[I]='Y' then POS[I]=cat(I);
end;
AESERN = cats(AESERN, '(', catx(',', of POS[*]), ')');
end;
run;
cats remove leading and trailing blank, catt remove trailing blank. So, try this:
AESERN = catt(AESERN, ' (', catx(',', of POS[*]), ')');
Thank you very much
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.