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;

 

hackathon24-white-horiz.png

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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
  • 1548 views
  • 3 likes
  • 4 in conversation