I was able to use the code belwo to batch process files with names like 201501.csv, 201502.csv,.. etc
Now I have 12 files, whose names are named by months, like xxxx-Jan2014.csv, xxxx-Feb2014.csv, ... xxxx-Dec2014.csv.
Is there a way to use the similar code below?
%macro run_me;
%let n=1;
%do %while (&n <= 9);
%let filein = xxxx20150&n..csv;
data output&n;
infile &filein;
<data step-->
run;
%let n=%eval(&n+1);
%end;
%mend;
Yes, but you have to process over a list of values, rather than a range of numbers. You might call the macro like this:
%run_me (month_list=Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
Here's an article that tells you how to do it:
Yes, but you have to process over a list of values, rather than a range of numbers. You might call the macro like this:
%run_me (month_list=Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
Here's an article that tells you how to do it:
Or you could step over months numerically and generate the part of the file name:
%let monnum=1;
%let year=2014;
%let name = %sysfunc(putn(%sysfunc(mdy(&monnum,1,&year)),MONYY7.));
%put &name;
If you have a do loop on MONNUM (or use &i where I used &monnum) you create the name part for a series.
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.