我有 51 个文件(我从 BLS 中提取了所有 50 个州和华盛顿特区的失业率),我需要将它们堆叠在一起。我正在研究一个将导入文件然后堆叠它们的宏,但我一直坚持如何编写一个循环来堆叠它们。我只堆叠第一个和最后一个数据集,中间什么都没有。我不确定我做错了什么,任何帮助将不胜感激。提前致谢。
/*MACRO TO IMPORT TRANSLATED RAW DATA FILES*/
%macro import;
%do iterate = 1 %to &files;
data _null_;
set files(where = (file = &iterate));
call symput('infile',left(trim(filename)));
call symput('State',left(trim(state)));
run;
%put &infile;
%put &state;
/*IMPORT RAW DATAFILES*/
proc import datafile = "&raw\&infile" out = &State dbms = xls replace;
getnames = yes; namerow = 11; datarow = 12;
run;
/*CREATE A NEW STATE COLUMN*/
data &State;
set &State;
State = "&State";
run;
%if &iterate = 1 %then %do;
data merge1;
keep year period labor_force employment unemployment unemployment_rate state;
format year 4. period $3. labor_force employment unemployment comma12.2 unemployment_rate 4.2
state $24.;
set &state;
run;
%end;
%if &iterate > 1 %then %do;
data unemploy_merge;
keep year period labor_force employment unemployment unemployment_rate state;
set merge1 &state;
run;
%end;
%end;
%mend import;