Hello
I want to create a new column that concatenate reasons.
My question-
In the resulted concatenated column there is sign "||" at the end and I dont want to have it.
What is the way to modify the code to prevent "||" sign at end of the string?
Please note that I want to have "||" between reasons but not in end.
Data have;
input ID X1 X2 X3 ;
cards;
1 1 0 0
2 0 0 0
3 1 1 0
4 0 0 1
5 0 1 0
6 1 1 1
7 0 0 0
8 0 1 1
9 0 1 0
10 0 0 1
;
Run;
Data want;
length Reasons $100.;
set have;
Reasons='';
If X1=1 then Reasons=compress(Reasons||'Health_issue||');
If X2=1 then Reasons=compress(Reasons||'Wealth_issue||');
If X3=1 then Reasons=compress(Reasons||'Other_issue||');
IF X1=0 AND X2=0 AND X3=0 then Reasons='No_Reasons';
Run;
Here's a way to get rid of the extra ||. Switch from COMPRESS to CATX:
If X1=1 then Reasons=catx('||', Reasons, 'Health_issue');
If X2=1 then Reasons=catx('||', Reasons, 'Wealth_issue');
If X3=1 then Reasons=catx('||', Reasons, 'Other_issue');
IF X1=0 AND X2=0 AND X3=0 then Reasons='No_Reasons';
Here's a way to get rid of the extra ||. Switch from COMPRESS to CATX:
If X1=1 then Reasons=catx('||', Reasons, 'Health_issue');
If X2=1 then Reasons=catx('||', Reasons, 'Wealth_issue');
If X3=1 then Reasons=catx('||', Reasons, 'Other_issue');
IF X1=0 AND X2=0 AND X3=0 then Reasons='No_Reasons';
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.