04-26-2014 08:30 AM
I have a variable called "X", it has alphabets, numbers, special characters etc. I need to search for Upper and Lower Case alphabets from a to z and create a flag based on that. Whenever X has a character in it, a variable called flag should have value 1. Writing a if then statement is not an option cause its very long. I need to specify a variable with range of character values from A to Z and the variable flag should be based on that. Please help. Need a solution urgently.
04-26-2014 10:07 AM
I would think that you could write an if statement that includes some of the SAS ANY functions, e.g.: anyalpha, anyalnum, anycntrl, anydigit, anylower, anypunct and anyupper.
04-26-2014 02:08 PM
Some examples would clarify the question, but it sounds like you want the INDEXC() function.
flag = indexc(upcase(x),'ABC');
Then FLAG will have the position where A,B or C first appear in X. You could treat FLAG as a true/false variable if you want.
Or you could convert it to a 0/1 variable by using:
flag = 0 ^= indexc(upcase(x),'ABC');
flag = not not indexc(upcase(x),'ABC');