|
|
SAS/STATのプロシジャの結果をデータセットに出力するには
[OS]ALL
[リリース] SAS System 8 以降
[キーワード] STAT, ODS, OUTPUT
[質問]
SAS System 8 以降では、SAS/STATのプロシジャを実行して得た結果をすべてSASデータセットとして出力することが可能になったと聞きました。 どのように実行するのでしょうか?
[回答]
SAS System 8 以降では、ODS(アウトプット・デリバリ・システム)の機能を利用して、すべての解析結果をSASデータセットへ出力できるようになりました。この機能は、Base SAS、SAS/ETSなどでも利用可能です。
実行手順としては以下のようになります。
- 出力結果に関する情報をログウィンドウに出力するODS TRACEステートメントを利用して、ODS OUTPUTステートメントで使用するODSテーブル名を確認します。 (注 1)
- ODS OUTPUTステートメントでODSテーブル名を指定して、出力内容をSASデータセットとして保存します。
ODS OUTPUT ODSテーブル名 = 出力先のSASデータセット名 ;
たとえば、GLMプロシジャで出力される下記の分散分析表(ANOVA表)をSASデータセットに出力するには、以下のように実行します。
- GLMプロシジャの分散分析表
-
Sum of
Source DF Squares Mean Square F Value Pr > F
Model 2 579.5000000 289.7500000 14.61 0.0015
Error 9 178.5000000 19.8333333
Corrected Total 11 758.0000000
- 実際のSASプログラム
-
/** GLMプロシジャの出力に関する情報をLOGウィンドウに出力します。**/
ODS TRACE ON;
/** GLMプロシジャの実行 **/
proc GLM data=data1;
CLASS group;
MODEL resp=group;
RUN;
/** ODS TRACEステートメントの解除 **/
ODS TRACE OFF;
- 上記プログラム実行後のLOGウィンドウの出力
-
Output Added:
-------------
名前 : ClassLevels <--- ODSテーブル名
ラベル : Class Levels
テンプレート : STAT.GLM.ClassLevels
パス : GLM.Data.ClassLevels
-------------
Output Added:
-------------
名前 : NObs <--- ODSテーブル名
ラベル : Number of Observations
テンプレート : Stat.GLM.NObs
パス : GLM.Data.NObs
-------------
Output Added:
-------------
名前 : OverallANOVA <--- ODSテーブル名
ラベル : Overall ANOVA
テンプレート : stat.GLM.OverallANOVA
パス : GLM.ANOVA.resp.OverallANOVA
-------------
(後略)
上記の出力から、出力したい分散分析表のODSステートメントで使用するODSテーブル名「OverallANOVA」を取得します。
- 実際のSASプログラム (注 2)
-
/** ODS OUTPUTステートメントを利用してデータセットを作成 **/
ODS OUTPUT OverallANOVA=out1; /** 名前=出力するデータセット名 **/
proc GLM data=data1;
CLASS group;
MODEL resp=group;
RUN;
QUIT;
/** 出力したデータセットの確認 **/
PROC PRINT data=out1;
RUN;
- 出力されたデータセットの内容
-
OBS Dependent Source DF SS MS FValue ProbF
1 resp Model 2 579.5000000 289.7500000 14.61 0.001
2 resp Error 9 178.5000000 19.8333333 _ _
3 resp Corrected Total 11 758.0000000 _ _ _
注1 |
ODSテーブル名の確認方法として、ODS TRACEステートメントでLISTINGオプションを指定すると、LOGウィンドウではなくOUTPUTウィンドウへテーブル名などの情報が出力されます。
ODS TRACE ON / LISTING;
また、ODSテーブル名はSAS/STATやSAS/ETSのドキュメントにも記載されています。SAS9以降では、Base SASのプロシジャのドキュメントにおいてもテーブル名の一覧が記載されるようになりました。
|
注2 |
1つのODS OUTPUTステートメントで、複数のアウトプットオブジェクトに対してSASデータセットを作成することが可能です。
このFAQの例で、当てはまりに関する統計量(ODSテーブル名はFitStatistics)を併せてSASデータセットとして出力するためには、下記のように指定します。
ODS OUTPUT OverallANOVA=out1 Fitstatistics=out2;
proc GLM data=data1;
CLASS group;
MODEL resp=group;
RUN;
QUIT;
|
|