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;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.