次のようなマクロ関数を含むマクロ ループを実行しています。
%macro loop;
%do j=1 %to 1000;
%macro variable;
%end;
%mend;
マクロ変数自体には、次のように囲まれたいくつかのマクロ関数があります。
%macro variable;
%macro rename(x);
proc sql;
create table Renamed&j&x as
select *,
rename1 as rename1,
rename2 as rename2,
...
from rename&j&x
quit;
%rename(1);
%rename(2);
....
%mend;
%mend;
これらのスティッキーでネストされたマクロ ループと変数の正しい構文は何ですか? &&j と &x の使用を覚えているようですが、エラーが発生します。
すべての&jを2に置き換えるとコードが機能するため、コードは問題ありません。ループの再帰的な性質により、変数が正しく挿入されていません。ティア。