BookmarkSubscribeRSS Feed

SAS/STATのプロシジャの結果をデータセットに出力するには

Started ‎03-13-2018 by
Modified ‎04-19-2018 by
Views 1,559

質問

SAS System 8 以降では、SAS/STATのプロシジャを実行して得た結果をすべてSASデータセットとして出力することが可能になったと聞きました。 どのように実行するのでしょうか? 

回答

SAS System 8 以降では、ODS(アウトプット・デリバリ・システム)の機能を利用して、すべての解析結果をSASデータセットへ出力できるようになりました。この機能は、Base SAS、SAS/ETSなどでも利用可能です。実行手順としては以下のようになります。

 

  1. 出力結果に関する情報をログウィンドウに出力するODS TRACEステートメントを利用して、ODS OUTPUTステートメントで使用するODSテーブル名を確認します。 (注 1)
  2. 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;
QUIT; /** 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 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;

 

Version history
Last update:
‎04-19-2018 04:13 AM
Updated by:
Contributors

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

Article Labels
Article Tags

SAS Support Communitiesのユーザーガイドライン


コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。

詳細を読む

 

SAS Support CommunitiesのFAQ


SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。

詳細を読む

 

質問や意見の投稿と返信方法について


Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。

詳細を読む