【SAS勉強会-第4回-】ODSステートメントを使用したHTML出力

f:id:pinkie79:20211201143139p:plain

皆さま。こんにちは、marshmallow_bijouです。

今年も終わりに近づいてきましたね。私はクリスマスケーキを食べるのを指折り数えて楽しみにしているこの頃です。

 

さて今回は、ODSステートメントを使用して、HTML出力を作成し表示する方法についてお話していこうと思います。

 

前回の記事はこちら👇

blog.css-net.co.jp

 

 

 

1.ODSの動き

まず、HTML出力のお話の前に、ODSステートメントとは何かについて、軽く触れておきます。

*1

ODSでは、書式設定のオプションを与えることによって、出力の幅を広げることが出来るので、指定した形式で出力ファイルを作成したいときに使えるかと思います。指定できる出力形式には、HTML出力・RTF出力・PDF出力などがあります。

ODSステートメントで出力形式や出力先パスの指定などをしつつ、出力を作成するSASプログラム(proc freqなどの集計プロシジャ)を実行すると、下記の流れで処理が行われます。

①まず、ODSは出力オブジェクトの形式で出力を作成します。例えば、PDFとHTML出力をODSステートメントで設定している時は、PDFとHTMLの形式で出力が作成されます。

*2

②次に、ODSは指定したODS出力先に出力オブジェクトを送り、出力先で決められている書式設定で出力を作成します。例えば、ODS出力先として、PDF出力先とHTML出力先が指定されている場合は、PDF・HTML形式で出力を作成します。

③最後に、ODSはSASの結果ウィンドウに各オブジェクトへのリンクを作成します。

 

f:id:marshmallow_bijou:20211121162703p:plain

ODSステートメントの流れは上記の図のイメージです。

2.ODS出力先のオープン・クローズ

2-1.ODS出力先のオープン・クローズの仕方

【構文】

ODS <作成したい出力タイプに対するキーワード> <任意の必要オプション>;

ODS <出力タイプに対するキーワード> CLOSE;

 

上記の構文では、ODSステートメントを使用して、作成したい形式で出力先を開きます。

ここで注意すべきは、出力結果にアクセスするためには、プログラムの最後に「ODS <出力タイプに対するキーワード> CLOSE;」で出力先を閉じる必要があることです。HTML以外の出力先はデフォルトで閉じている(PDFやRTFなどの形式で出力したい場合は、出力先を「ODS <作成したい出力タイプに対するキーワード>」で開かないと出力出来ない)ため、プログラムの最初で開いて最後に閉じますが、HTML出力だけは例外でデフォルトで開いているので注意が必要です。

また、開いている出力先はシステムリソースを使用するので、必要ないときは閉じておくとリソースの節約につながります。

 

ここからは、実際にSASでの記載例を見ていきましょう。

f:id:marshmallow_bijou:20211121165543p:plain

proc freqで出力する結果テーブルのtest_ageをはじめに作成し、次にODSステートメントでproc print を囲ってテーブルtest_ageを出力しています。

上記の例では、HTM出力がデフォルトで開いているので、HTMLを出力しつつ、ods listing でリストも出力しています。

 

※出力結果のイメージ

f:id:marshmallow_bijou:20211121171929p:plain

f:id:marshmallow_bijou:20211121170703p:plain

リスト出力のみ作成したい場合は、HTMLを最初に閉じておきます。HTML出力の設定を変えると、セッションを閉じるor出力先を再度開くまでそのままになるので、プログラムの最後にHTML出力を再設定するとよさそうです。

 

2-2.複数の出力先を一度に閉じたい場合

【構文】

ODS  _all_  CLOSE;

※CLOSEステートメントにキーワード「_all_」を使用!

 

こちらも、SASでの記載例を見ていきましょう。

f:id:marshmallow_bijou:20211121172240p:plain

ODSステートメントで、RTFとPDFの出力先を開いていますが、「ods _all_ close」で

一度に全ての出力先を閉じています。これは、デフォルトのHTML以外の出力先を複数開いた際に使えると思います。

※上記の例では、全ての出力先が閉じられてしまうため、現在のセッション中のDATAステップやPROCステップが、元のHTML出力の作成に戻れるよう、最後に「ods html」と書いて、HTMを再度出力先として開いています。

 

3.オプションを使用したHTML出力

最後にODS HTMLステートメントのオプションの中から、1つ取り上げてみたいと思います。

 

【構文】

ODS HTML BODY=”HTML出力を含むファイルを指定”;

ODS HTML CLOSE;

 

ODS HTMLステートメントでは、オプションを指定することが出来ます。今回は、BODYオプションについてお話します。このオプションでは、ファイルの出力先を指定します。

 

早速、SASの記載例を見ていきましょう。

 

f:id:marshmallow_bijou:20211121173540p:plain

上記の例では、bodyで指定したフォルダのファイルに出力します。

4.最後に

今回の記事はいかがでしたでしょうか。私個人としては、あまり使ったことのない機能だったため、大変勉強になりました。ご覧いただきありがとうございました!

 

さらに詳しい資料はこちらから。

データ分析の必要性から、CSSが取り組んできたデータ分析の実績や事例までをまとめてご説明します。

marketing.css-net.co.jp

*1:

ODS…output delivery systemの略。

*2:各出力オブジェクトは、プロシジャやDATAステップの結果(データコンポーネント)と、結果をどのように提供するかの情報(テーブル定義)を含みます。データコンポーネントは、データの部品のイメージ。