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".
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.