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;
Use next code:
data want;
set have;
ix = index(name,'_lg');
if ix>0 then name = substr(name,1,ix-1);
run;
Use next code:
data want;
set have;
ix = index(name,'_lg');
if ix>0 then name = substr(name,1,ix-1);
run;
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;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.