data Q1;
X=1;Y=2;Z=3;
run;
のデータセットに
data A1(drop= rename=());
set Q1;
run;
を実行すると、問題なく実行されます。
(drop= rename=())の部分は完全に意味のない空指定として無視されます。
それがどうした?といった感じなんですが、マクロ化する時なんかに
この性質を知っていると書きやすいです。
%macro ma(dr,rn);
data A1(drop=&dr rename=(&rn));
set Q1;
run;
%mend;
とのようなマクロを作った時、
何も操作を加えず、データセットQ1をA1として作成したい場合は
%ma(,)
でOKです。僕はずっと、こけると思ってました。
それで例えば
%ma(X Y,%str(Z=A))
で実行すれば
変数X Yが落ちて、ZがAにリネームされます。
ただし、注意点として
data A2(where=());
set Q1;
run;
は駄目です、エラーになります。これ、通るようにならないかなぁ。
0 件のコメント:
コメントを投稿