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;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.