How can I evaluate a variable to create another if the if function does not allow the like operator?
For example is easy if var is numeric, like:
IF VAR1 = 0 THEN VAR2 = 'A';
But if I need to evaluate something inside string of characters how can it be?
some like:
IF VAR1 LIKE "%A%" THEN VAR2 = "CONTAINS LETTER A"
What operator can I replace to LIKE?
Either the INDEX or FINDC functions.
Art, CEO, AnalystFinder.com
thank you Art, and do you know how can I do it like a evaluate a list?
I know this does not work but is only an example:
IF VAR1 IN ('%A%','%B%','%C%') THEN VAR2 = 'CONTAINS LETTERS A B or C'
If I use this works:
IF INDEX(VAR1,'A') THEN VAR2 = 'CONTAINS LETTERS A B or C'
IF INDEX(VAR1,'B') THEN VAR2 = 'CONTAINS LETTERS A B or C'
IF INDEX(VAR1,'C') THEN VAR2 = 'CONTAINS LETTERS A B or C'
But is it possible to simplify it?
I simplified like this:
IF INDEX(VAR1,'A') or INDEX(VAR1,'B') or INDEX(VAR1,'C') THEN VAR2 = 'CONTAINS LETTERS A B or C'
but is there another way tah you know more shorten? some like:
IF INDEX(VAR1,'A','B','C') THEN VAR2 = 'CONTAINS LETTERS A B or C'
Thanks
Please try
if prxmatch('m/[abc]/i',VAR1) then VAR2="CONTAINS LETTER A or B or C";
alternatively we could try the perl regular expression like below
if prxmatch('m/[a]/i',VAR1) then VAR2="CONTAINS LETTER A";
the findc function allows you to both find if a string contains one or more of the variables in a list, as well as ignore case (if desired). e.g.:
data want;
informat string $23.;
input string &;
if findc(string, 'abc', "i") then
want='Contains A, B or C';
datalines;
Microsoft Office Visio
Microsoft Office Word
Adobe Photoshop
Adobe PhotoshopPro
Internet Explorer
;
Art, CEO, AnalystFinder.com
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.