I have one variable in a dataset that include letters, numbers and special characters. Is there way I can screen out observations with ONLY letters, ONLY numbers, and ONLY special characters.
I am presenting some simple code here, You can modify as per your exact requirement!!!
data have;
Input name $;
datalines;
RAVI
1234
HARI
5678
%$#@
;
data want;
set have;
if verify(trim(left(name)),'0123456789')=0 then x = 'N';
else if verify(trim(left(name)),'!@#$%^&*()')=0 then x = 'S';
else x = 'C';
Result :
Obs name x
1 RAVI C
2 1234 N
3 HARI C
4 5678 N
5 % # S
I am presenting some simple code here, You can modify as per your exact requirement!!!
data have;
Input name $;
datalines;
RAVI
1234
HARI
5678
%$#@
;
data want;
set have;
if verify(trim(left(name)),'0123456789')=0 then x = 'N';
else if verify(trim(left(name)),'!@#$%^&*()')=0 then x = 'S';
else x = 'C';
Result :
Obs name x
1 RAVI C
2 1234 N
3 HARI C
4 5678 N
5 % # S
See the functions
ANYALPHA
NOTALPHA
ANYDIGIT
NOTDIGIT
ANYCNTRL
NOTCNTRL
Hello,
One solution below:
data have;
length b $ 7 ;
infile datalines truncover;
input a $200.;
if length(compress(a,,'ad')) gt 1 then b="Special";
else if length(compress(a,,'d')) gt 1 then b="Letters";
else b="Digits";
datalines;
sdijgh68%#$kjs
436346
gsgs
#$%&
eyeryt547&&
GtreUI
;
run;
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.