バイバブメータ:
TEMP2などTEMP1、のような類似した名前のマクロ変数があります。..
TEMP1 = XYZ; TEMP2 = ABC;
今、私はデータセットにこれらのマクロ変数の値を格納します。
私は以下のように何かを書いてみました:
%let n=2;
data current_data;
do=1 to &n.;
myvalues="&&temp&i.";
run;
しかし、その作業はありません。それは、コールsymput機能がないだけのように宣言されていると私は同じデータセットで解決取得されていないようです。
誰の助けができますか?
トム:
動的データステップ用に、実行時にマクロ変数の値を取得するにはsymget()
、関数の逆call symputx()
関数を。あなたは使用することができcats()
、あなたの整数値からマクロ変数名の構築を支援します。
data current_data;
do=1 to &n.;
length myvalues $200;
myvalues=symget(cats('temp',i));
output;
end;
run;
あなたは、いくつかの壁紙のコードを生成するために、マクロのロジックを使用することができます。あなたは%DOループを使用するマクロを定義しなければならないことに注意してください。
%macro expand;
data current_data;
length i 8 myvalues $200;
%do i=1 %to &n;
i=&i;
myvalues="&&temp&i";
output;
%end;
run;
%mend expand;
%expand;