BookmarkSubscribeRSS Feed
ranjita
Calcite | Level 5

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.

2 REPLIES 2
art297
Opal | Level 21

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.

Tom
Super User Tom
Super User

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');

or

flag = not not indexc(upcase(x),'ABC');

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.

Explore Now →
What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 2257 views
  • 3 likes
  • 3 in conversation