2016年4月15日金曜日

「DATA _NULL_」 について。




以下の構文で、データセットを作らずにデータステップが実行できます。

DATA _NULL_;

      ~ なんかの処理 ~

RUN;

「データステップを実行したいけど、データセットへの出力は不要」という場合に使えます。




単純な例ですが、以下はデータセットSASHELP.CLASS の特定の変数値をログに出力する例です。

data _null_;
      set sashelp.class;
      put name sex age;
RUN;

ログに出力するだけで、データセットを作りたいわけじゃないんで、「_NULL_」 を使用しています。



ちなみに以下の文もエラーなく通ります。

* 何もPRINTしない ;
proc print data=_null_;
run;

* 何もSETしない ;
data dt1;
  set _null_;
run;

あんまり役に立つ例が思いつかないですが、マクロに組み込んだりすれば便利そうです。


ひとつ知ってるのが、0オブザベーションのデータセットを作りたい時に大体以下のように書くと思いますが、、

data empty;
   stop;
run;


何かの本で、

data empty;
   set _null_;
run;

と書いてる面白い例を見たことがあります。
なんかかっこいい書き方ですね。


他に何かアイディアとか、こういう時使ったという例があったら、教えてほしいです。



0 件のコメント:

コメントを投稿