私は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;
このコードはi=1 to &end
から実行する別のDOループ内です。 このマクロの変数cont4_&&var&i
cont8_&&var&i
cont9_&&var&i
は、コストがかかりすぎて...ループの外側で使用できなくなります。私はそれらを例えば&&cont4_&&var&i
と名付けようとしました。しかし、明らかにSASはマクロを解決しません。 実際にはループの内部でマクロが作成されますが、私が外に必要なときに呼び出す方法はわかりません。
どうすれば修正できますか?
ありがとうございます。
また、[この質問](http://stackoverflow.com/questions/24895197/resolving-multiple-ampersands-を参照してくださいwith-macro-variables)と[複数質問](http://stackoverflow.com/questions/22903856/sas-macro-ampersand/22915555#22915555)を参照してください。 – Joe