Dear,
I need to find a word in character string and assign values to another variable. I have visit variable. I need to assign values to period variable.Please help. Thank
eg; if visit contains word 'Wk 4' then period=1;
else if visit contains word 'UNSCHEDULED' then period=2.
visit
Day 28&29 +/- 3 Wk 4
Day 27&28 +/- 3 Wk 4
UNSCHEDULED VISIT 1.01
UNSCHEDULED VISIT 2.01
While INDEX is the right tool, it has to be used wisely. For example, this would be lazy:
if index('KWk 45', 'Wk 4') then period=1;
The INDEX function will find "Wk 4" and will set PERIOD to 1.
More careful use would append a blank at the beginning and end of both strings:
if index(' KWk 45 ', ' Wk 4 ') then period=1;
Now INDEX is searching for a 6-character string, and doesn't find it. Using your VISIT variable:
if index(' ' || visit || ' ', ' Wk 4 ') then period=1;
else if index(' ' || visit || ' ', ' UNSCHEDULED ') then period=2;
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.