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 !!
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.