BookmarkSubscribeRSS Feed
knveraraju91
Barite | Level 11

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

 

 

 

 

4 REPLIES 4
Jagadishkatam
Amethyst | Level 16
Please try compress
TEST1=compress(strip(tranwrd(TEST, "_RAW", "")),'ka');
Thanks,
Jag
Jagadishkatam
Amethyst | Level 16

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
;
Thanks,
Jag
RahulG
Barite | Level 11

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;

 

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

How to Concatenate Values

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.

SAS Training: Just a Click Away

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

Browse our catalog!

Discussion stats
  • 4 replies
  • 1186 views
  • 3 likes
  • 4 in conversation