Dear,
I need help in my code. In my data, a variable (test) contain some characters that I need to remove. Please help.
test
BMI_RAW
DIABP1_RAW
DIABP2_RAW
SYSBP2_RAW
SYSBP1_RAW
SYSBP3_RAW
OUTPUT NEED;
TEST1
BMI
DIABP
DIABP
SYSBP
SYSBP
SYSBP
MY CODE;
TEST1=strip(tranwrd(TEST, "_RAW", ""));
I AM GETTING OUTPUT;
BMI
DIABP1
DIABP2
SYSBP1
SYSBP2
SYSBP3
Please help. Thanks
alternatively by perl regular expressions
data have;
input text:$100.;
if prxmatch('/[1-9]|\_\RAW/',text) then new=prxchange('s/[1-9]|\_\RAW//',-1,text);
cards;
BMI_RAW
DIABP1_RAW
DIABP2_RAW
SYSBP2_RAW
SYSBP1_RAW
SYSBP3_RAW
;
I have used Pearl regular expression function
d?_RAW means it would check string having zero or one digit (d? ) then followed by _RAW.
data have;
input test $16.;
datalines;
BMI_RAW
DIABP1_RAW
DIABP2_RAW
SYSBP2_RAW
SYSBP1_RAW
SYSBP3_RAW
;
data want(drop=RegularExpressionId);
set have;
RegularExpressionId = prxparse('s/\d?_RAW/ /');
call prxchange(RegularExpressionId, -1, test );
put test ;
run;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.