delete / cut text variable at the end of string with certain rule

Accepted Solution Solved
Reply
Super Contributor
Posts: 371
Accepted Solution

delete / cut text variable at the end of string with certain rule

[ Edited ]

Hi Everyone,

 

I have a variable of text "name" with some record follow the rule.

As you see, the records are 

 

value123

value

value_lg3
value_t1_lg6
value_lg12
value_3_ab_lg3

 

I want all record with the lg at the end to be delete anything after the "_lg" including the "_lg" itself.

it only appear at the end if there is any "_lg".

 

So the output should be

 

value123

value
value
value_t1
value
value_3_ab

 

Any help is very much appreciated.

 

Thank you,

 

HHC

 

data have;
input name $;
datalines;
value123
value
value_lg3
value_t1_lg6
value_lg12
value_3_ab_lg3
run;

 


Accepted Solutions
Solution
‎02-15-2017 10:01 AM
Super User
Posts: 1,225

Re: delete / cut text variable at the end of string with certain rule

Use next code:

 

data want;

 set have;

       ix = index(name,'_lg');

       if ix>0 then name = substr(name,1,ix-1);

run;

View solution in original post


All Replies
Solution
‎02-15-2017 10:01 AM
Super User
Posts: 1,225

Re: delete / cut text variable at the end of string with certain rule

Use next code:

 

data want;

 set have;

       ix = index(name,'_lg');

       if ix>0 then name = substr(name,1,ix-1);

run;

Super Contributor
Posts: 371

Re: delete / cut text variable at the end of string with certain rule

It works nicely.
Thank you.
HC
Grand Advisor
Posts: 9,567

Re: delete / cut text variable at the end of string with certain rule

data have;
input name $20.;
want=prxchange('s/\_lg\d+\s*$//i',1,name);
datalines;
value123
value
value_lg3
value_t1_lg6
value_lg12
value_3_ab_lg3
;
run;

proc print;run;
☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 108 views
  • 1 like
  • 3 in conversation