BookmarkSubscribeRSS Feed

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

Started ‎03-13-2018 by
Modified ‎04-19-2018 by
Views 723

質問

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 2024

Innovate_SAS_Blue.png

Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. 

Register now!

Article Labels
Article Tags

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


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

詳細を読む

 

SAS Support CommunitiesのFAQ


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

詳細を読む

 

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


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

詳細を読む