Hello everyone,
I want rename multiple varaibles (they have common begin characters var_)in data three, but not work,please help.
data one;
var_1=1;var_2=2;var_3=3;var_4=4; var5=5;output;
run;
data two;
set one;
rename var_3=var_3_new;
*rename var_:=varname(var_: )||_new;
run;
data three;
set one;
rename var_:=varname(var_: )||_new;/*this not work*/
run;
Thanks!
The rename only takes text, you can't use functions like that. You need to list all out.
If if you have a series with common prefix you can do the following:
rename x1-x5 = new_x1-new_x5;
Use prefixes rather than suffixes to make your life easier.
You could create a map file to describe how to rename these variables.
data one;
var_1=1;var_2=2;var_3=3;var_4=4; var5=5;output;
run;
proc transpose data=one(obs=0) out=temp;
var _all_;
run;
data temp;
set temp;
new=catx('_',_name_,'new');
run;
data _null_;
set temp end=last;
if _n_=1 then call execute('proc datasets lib=work nolist nodetails;modify one;rename ');
call execute(catx('=',_name_,new));
if last then call execute(';quit;');
run;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.