Я работаю с SAS, и мне нужно создать некоторые макропеременные в цикле DO. Это часть моего кода:Как использовать макрокоманду && в SAS
%if &dsempty888=0 %then %do;
data _null_;
set freq_&&var&i;
if &&var&i=888888888 then do;
call symput("cont8_&&var&i",percent);
end;
run;
%end;
%if &dsempty888=1 %then %do;
%let cont8_&&var&i=0;
%end;
%if &dsempty999=0 %then %do;
data _null_;
set freq_&&var&i;
if &&var&i=999999999 then do;
call symput("cont9_&&var&i",percent);
end;
run;
%end;
%if &dsempty999=1 %then %do;
%let cont9_&&var&i=0;
%end;
%if &dsempty444=0 %then %do;
data _null_;
set freq_&&var&i;
if &&var&i=444444444 then do;
call symput("cont4_&&var&i",percent);
end;
run;
%end;
%if &dsempty444=1 %then %do;
%let cont4_&&var&i=0;
%end;
Этот код находится внутри другой DO цикл, который запускается из i=1 to &end
. С этими моими переменными макросов cont4_&&var&i
cont8_&&var&i
cont9_&&var&i
переименованы в ... но они становятся неиспользованными за пределами их цикла. Например, я попытался назвать их &&cont4_&&var&i
. Но, очевидно, SAS не решает макрос. На практике внутри цикла создается макрос, но я не знаю, как их называть, когда мне нужно снаружи.
Как я могу исправить?
Заранее спасибо.
также [этот вопрос] (http://stackoverflow.com/questions/24895197/resolving-multiple-ampersands- с макро-переменными) и [этот вопрос] (http://stackoverflow.com/questions/22903856/sas-macro-ampersand/22915555#22915555) для получения дополнительной информации о множественном амперсанде. – Joe