A macro loop to read in several raw data files into a single dataset in a single data step:
data infiles (keep = filename);
length filename $128;
infile "c:pathtofilecontainingfilenames.txt" pad missover;
input filename $;
run;
data _null_;
dsid = open("infiles");
nobs = attrn(dsid,’nobs’);
rc = close(dsid);
call symputx("N",nobs);
run;
data _null_;
set infiles;
call symput(‘filename’||trim(left(_N_)),compress(filename));
run;
%macro infileLoop;
%do fileLoop = 1 %to &N.;
data foo;
infile "c:pathtodirectoryofdatafiles&&filename&infileLoop";
[ Rest of program ]
run;
proc append base=permanent.dataset data=work_dataset;
run;
proc datasets library=work kill memtype=data nolist nodetails;
run;
%end;
%mend infileLoop;
%infileLoop
Recent Comments