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;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.
Ready to level-up your skills? Choose your own adventure.