У меня возникли проблемы со ссылкой на глобальную переменную макроса вне макроса для создания нового набора данных.Глобальная переменная была создана для запуска цикла создания нескольких годовых наборов данных с использованием вектора указанных лет, как вы можете видеть в приведенном ниже коде:
%macro loopyear;
%global year;
%do year = 2004 %to 2017;
proc import datafile = "C:\Filepath\blah.txt"
dbms = dlm out = blah&year.; /*Creates a dataset for each year, e.g. blah2004, blah2005, etc.) */
delimiter = " ";
getnames = no;
run;
data blah&year.;
set blah&year.;
year = &year.;
run;
proc sql;
create table blah&year._rail as
select year, var1, var2, var3, var4
from blah&year.
where var2= "rail";
quit;
%end;
%mend loopyear;
%loopyear;
/*Merge all year datasets into one master set*/
data blah_total;
set blah&year._rail;
run;
Когда я пытаюсь создать набор основных данных внеоднако в макросе я получаю следующую ошибку:
data blah;
set blah&year._rail;
run;
ERROR: File work.blah2018_rail.data does not exist
Это разочаровывает, потому что я пытаюсь создать основной набор только на основе данных за 2004-2017 гг., как указано в переменной макроса.Может ли кто-нибудь помочь мне определить мою ошибку - это то, как я определил глобальную переменную, или я где-то пропускаю шаг?Любая помощь приветствуется.
Спасибо!