(注意:今回のテクニックにGPLOTは含まれません)
SGPLOTでグラフを書くときに「ODS TRACE ON/OFF」で囲って実行してみましょう。
ログを見ると「SGPlot」という出力オブジェクトが作成されている事が分かります。
この出力オブジェクトを以下のように「ODS OUTPUT」に指定してやると、、
この出力オブジェクトを以下のように「ODS OUTPUT」に指定してやると、、
なんとグラフ描画時に内部的に作られた?データセットを出力する事が出来ます。
役に立つ例
「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を使って自分好みの生存曲線を描く時にかなり使い勝手のいいデータセットです!(わりとそのまんま使える)
今まで生存曲線を描画するためのデータセットを作るのって結構面倒でしたが、上記の方法でだいぶ楽になると思います。
今まで生存曲線を描画するためのデータセットを作るのって結構面倒でしたが、上記の方法でだいぶ楽になると思います。