2016年10月25日火曜日

グラフ描画時にデータセットが作れる



(注意:今回のテクニックにGPLOTは含まれません)



SGPLOTでグラフを書くときに「ODS TRACE ON/OFF」で囲って実行してみましょう。

ods trace on;
proc sgplot data=SASHELP.CLASS;
  vbar AGE;
run;
ods trace off;

ログ

ログを見ると「SGPlot」という出力オブジェクトが作成されている事が分かります。


この出力オブジェクトを以下のように「ODS OUTPUT」に指定してやると、、

ods output SGPlot=OUT1;
proc sgplot data=SASHELP.CLASS;
  vbar AGE;
run;
ods output close;

データセット:OUT1

なんとグラフ描画時に内部的に作られた?データセットを出力する事が出来ます。



役に立つ例

「ODS GRAPHICS ON;」とすると、一部の統計プロシジャで統計量と一緒にグラフも出力されるのをご存知ですか?
(出力先がLISTINGの場合は統計プロシジャの結果にグラフは含まれません)

これらのグラフも上記の方法でデータセット化出来ちゃいます。


例えば
「ODS GRAPHICS ON;」かつ出力先がHTMLになっている状態で、以下のようにPROC LIFETESTを実行すると生存曲線も出力されますが、、

ods trace on;
proc lifetest data=sashelp.bmt  ;
  time t * status(0);
  strata group;
run;
ods trace off;

ログ













結果ビューア



これもグラフ用データセットが出力できます。

ods output SurvivalPlot=OUT1 ;
proc lifetest data=SASHELP.BMT ;
  time T * STATUS(0);
  strata GROUP;
run;
ods output close;

データセット:OUT1



あとでSGPLOTやSGRENDERを使って自分好みの生存曲線を描く時にかなり使い勝手のいいデータセットです!(わりとそのまんま使える)

今まで生存曲線を描画するためのデータセットを作るのって結構面倒でしたが、上記の方法でだいぶ楽になると思います。


0 件のコメント:

コメントを投稿