I have 66 datasets namely, Plan_1, Plan_2 ....... , Plan_66
I want to rename them to -- _2013_010_plan_sas, _2013_020_plan_sas, etc...there is no sequential order to these numbers, so I put them in an array,
array names{*} _2013_010_Plan_SAS
_2013_020_Plan_SAS
_2013_265_Plan_SAS
_2013_332_Plan_SAS .......;
But how do I use this array to rename the datasets via a macro, maybe.............or if there is any other way, please let me know.
Thanks, in advance!!
You need to generate code but a macro is not needed.
It will be easy read the new names as input DATA can generate the corresponding old name based on the location in the list.
data renames ;
input newname $32. ;
n+1;
oldname = catx('_','plan',n);
cards;
_2013_010_Plan_SAS
_2013_020_Plan_SAS
...
run;
proc sql noprint ;
select catx('=',oldname,newname) into :renames separated by ' '
from renames
;
quit;
proc datasets nolist lib=work;
change &renames ;
run; quit;
You need to generate code but a macro is not needed.
It will be easy read the new names as input DATA can generate the corresponding old name based on the location in the list.
data renames ;
input newname $32. ;
n+1;
oldname = catx('_','plan',n);
cards;
_2013_010_Plan_SAS
_2013_020_Plan_SAS
...
run;
proc sql noprint ;
select catx('=',oldname,newname) into :renames separated by ' '
from renames
;
quit;
proc datasets nolist lib=work;
change &renames ;
run; quit;
Thank you...it worked !!
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.