☑ This topic is solved.
Need further help from the community? Please
sign in and ask a new question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 09-04-2023 07:18 AM
(482 views)
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;
1 ACCEPTED SOLUTION
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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';
1 REPLY 1
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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';