One of my variables is made up of long strings. Similar to the following:
CODE
01|02|03|04|07|0A|0B|0C
01|02|03|04|05|0A|0B
I have tried using % wildcard operator, which works in SQL, but I couldn't get it to work in SAS. I also tried using * which I had seen used in another similar question. I would like to use an IF THEN statement to do the following:
IF CODE CONTAINS '03' THEN DO;
Unfortunately only arithmetic operators can be used with IF THEN statements. I considered using the SUBSTR function, but I don't know the starting position of the codes, they can change for each observation. Any advice or ideas on how I can solve this issue?
if find(code,'03') then do;
@Anthony_eng wrote:
One of my variables is made up of long strings. Similar to the following:
CODE
01|02|03|04|07|0A|0B|0C
01|02|03|04|05|0A|0B
I have tried using % wildcard operator, which works in SQL, but I couldn't get it to work in SAS. I also tried using * which I had seen used in another similar question. I would like to use an IF THEN statement to do the following:
IF CODE CONTAINS '03' THEN DO;
Unfortunately only arithmetic operators can be used with IF THEN statements. I considered using the SUBSTR function, but I don't know the starting position of the codes, they can change for each observation. Any advice or ideas on how I can solve this issue?
INDEXW/FINDW are functions you'll want.
FIND will find 01 within 001.
I think the statement in purple contradicts itself, not sure why you think "only arithmetic operators can be used with IF THEN statements".
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
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.