2016年4月18日月曜日

0オブザベーションのデータセットを作る方法 【まとめ】


変数属性だけ定義した0オブザベーションのデータセットを作る方法をまとめてみます。


①STOP
data DT1;
    set SASHELP.CLASS;
    stop;
run;

STOPステートメントでオブザベーションが出来る前に処理を停止させてしまう。


② OBS=
data DT2;
    set SASHELP.CLASS (obs=0);
run;

OBS=オプションで読み込むオブザベーション数を指定できます。


③ IF 0
data DT3;
    if 0 then set SASHELP.CLASS;
    stop;
run;

「if 0 then」 の 「0」 は 「false」 の意味になり、then以降の 「set SASHELP.CLASS」 の部分は実行されません。
。。のはずですが、たとえ実行されなくてもデータセット名の指定があると、コンパイル時にそのデータセットの定義情報だけを読み込みにいきます。
①とほとんど同じ方法ですが、こちらの方が内部的に余計な処理が入らないのでスマートです。


④ SET _NULL_;
data DT4;
    set SASHELP.CLASS;
    set _null_;
run;

http://sas-boubi.blogspot.jp/2016/04/data-null.html
http://sas-tumesas.blogspot.jp/2013/10/1obs.html(データステップ100万回)

新手かも。


⑤ WHERE 0
data DT5;
    set SASHELP.CLASS;
    where 0;
run;

この方法も見かけた事ないかも。


⑥ SQL
proc sql;
    create table DT6 like SASHELP.CLASS;
quit;

http://sas-tumesas.blogspot.jp/2013/10/blog-post.html(データステップ100万回)


0 件のコメント:

コメントを投稿