2017年6月30日金曜日

プロシジャ実行時に、「結果ビューア」への出力をしないで、「データセット」に出力する。



以下をご覧ください。

ods output Moments=OUT1;

   proc univariate data=SASHELP.CLASS;
       var AGE;
   run;

ods output close;



ODS OUTPUT を使って、集計結果をデータセットに出力しています。

ただしここで、「データセットに出力したいだけで、結果ビューアに集計結果が出るの邪魔くさい!」っていう時ありますよね。



そんな時は、以下のように「ODS SELECTステートメント」が使えます。

ods select none;
ods output Moments=OUT1;

   proc univariate data=SASHELP.CLASS;
      var AGE;
   run;

ods output close;
ods select all;



解説

ODS SELECT NONE ・・・
全ての出力オブジェクト(SAS内部で持っている集計結果)を、「ODS HTML」「ODS LISTING」「ODS OUTPUT」などのODS出力先に送り込むのをやめる。

ODS SELECT ALL・・・
全ての出力オブジェクトをODS出力先に送り込むように設定を戻す。


今回の例での細かな動きは以下の通り。

① 「ods select none」で全ての出力オブジェクト(集計結果)をODS出力先へ送り込むのをやめさせる。
② 「ods output ~」で指定した出力オブジェクト(集計結果)をデータセット化するよう設定。
③ 「ods output close」でデータセットへの出力を閉じる。
④ 「ods select all」で全ての出力オブジェクトをODS出力先に送り込むように設定を戻す。




ちょっと前に以下の記事で「ODS RESULTS」を紹介しました。
「ODS RESULTS」で結果ウインドウへの表示を抑制する

「ODS SELECT」と「ODS RESULTS」は似たような事が出来るので混同しがちですが、機能としては全然別物なのでご注意を。

0 件のコメント:

コメントを投稿