ＯＤＳチュートリアルの紹介
SAS Output Delivery System[ODSSystem[ODS]] Quick Tips
Sunday,May 7,2000 8:30-12:00

三共株式会社 高野浩布
中外製薬株式会社 辻 隆信

報告内容
１.チュートリアルの紹介
SAS/Version 8 ODSについて
テクニカルな話でなく、感想などを中心に
２.おまけ
SAS/Version 6 ODSについてこのチュートリアルは…
• ODS初心者を対象とした内容• 教育的なSundayセミナー• 有料($85)• PowerPointをそのままプリントしたテキストが一冊(全123ページ)• テキストに沿った説明のみで、SAS/V8を使用したデモは全くなかった

テキストの目次
Chapter
12
3
45
6
7891011

TopicPage

Traditional SAS Output
6ODS Basics
13
Tracing Output
24
Selecting Output
30
Creating Output Data Sets
40
Creating Rich Text Format Output 45
Creating Postscript Output
52
ODS and the DATA Step
64
HTML Basics
72
Creating Web Output
78
Customizing Output
106

このチュートリアルを受ければ…
This objectives of this workshop is to provide you with an introduction). At workshop completion,
to the SAS® Output Delivery System (ODS(ODS).
you should have a better understanding of the following:✓ Advantages / disadvantages with traditional output✓ Advantages of ODS output✓ How ODS handles raw data
✓ How ODS combines raw data with table definitions✓ How output destinations are opened and closed✓ How the Results window stores links to ODS output✓ How selection and exclusion lists are used
✓ How to create output data sets
✓ How to create RTF files✓ How to create SAS postscript files✓ How to create HTML output✓ How to customize output with the TEMPLATE procedureTraditional SAS Output• Advantages– familiar and automatic– easy to use• Limitations– monospace fonts used
– single line rendered at a time
– each procedure uses its own print routines– inconsistent use of formatting options– inability to control formatting– difficult to create HTML output

ODS／Answer Guide

ちょっとだけ宣伝…
ちょっとだけ宣伝…
$40くらいで発売中$40くらいで発売中!!
↓お問合せはこちら
http://www.software-intelligence.com/BookSASODS
http://www.software-intelligence.com/BookSASODS..htm

ODS とは…(1)• Introduced in Version 6.12
• Produce output as objects:
objects:– data component←データが入ったテーブル– template component ←フォーマット、フォント、カラーなど• Format output from PROCs / DATA steps• Create HTML code
• Create output SAS data sets
• Create rich text format (RTF)• Ability to customize output

ODS とは…(2)Destination
Result→ Output → SAS
Data Set
Data Component
Select→ Listing→ Output｜→ Output
Window
Template Component
Objects → HTML → HTML
File→ Printer→ Postscript
File→ RTF→ RTF
FileODS RTF Results (1)Delivering RTF Output
The UNIVARIATE Procedure
Variable: LengthMomentsN

22 Sum Weights

22

Mean

124.909091 Sum Observations

Std Deviation

25.8344714 Variance667.419913

Skewness

1.45414494 Kurtosis

1.71453814

2748

Uncorrected SS

357266 Corrected SS

14015.8182

Coeff Variation

20.682619 Std Error Mean

5.50792781

ODS RTF Results (2)• RTFは各種ワープロに取り込むためのファイル形式として用意された?
• 外国人も罫線にこだわり始めたのか?
• 色も付いているし、複数フォントも使用されている

ポストスクリプト→PDF変換• ODSのPDFサポートは次のリリース• Adobe AcrobatのDistillerでPS→PDF変換(要ライセンス)• PS→PDF変換自体は、Version6.12でも使えるテクニック

Ｗｅｂ Ｐｕｂｌｉｓｈｉｎｇ (1)

集計・解析

ＯＤＳのＨＴＭＬ
出力を利用して報告書作成

責任者が承認(電子承認)

社内イントラネット等

結果を共有

セキュリティをかけてＷｅｂにアップロード

Ｗｅｂ Ｐｕｂｌｉｓｈｉｎｇ (2)• 社内での情報活用の迅速化・効率化• 従来の紙ベースに比し、最新のデータを時差なしで共有・管理できる• 誰でも、好きなときに報告書を参照できる(セキュリティは重要)• 電子申請への即時対応も視野に入る?

まとめ (1)ODSで我々の業務はどう変わるだろうか…
ODSで我々の業務はどう変わるだろうか…

• 紙ベースからファイルベースへ– Web Publishing– グローバルな情報共有・管理– 電子承認の方法は要検討!
電子承認の方法は要検討!
– セキュリティには十分な配慮を!
セキュリティには十分な配慮を!

• SAS/ODS出力をそのまま報告書に– 出力レイアウトの標準化– 作成・確認作業の時間短縮、効率化– 情報公開までの時間短縮

まとめ (2)ODS以外に
V8で気になることはで気になることは…
…
ODS以外にV8• SAS Explore– Windows Explore様のインターフェース
Explore様のインターフェース– ライブラリやデータセットの管理がよりビジュア
ルに– ユーザフレンドリーな操作環境が提供されるのでは?のでは? 期待し過ぎ?
期待し過ぎ?

感想文
SASについて…
• 日米のSASバージョン格差が大き過ぎる!
• 最新のバージョンをすぐに使用できるのはうらやましい!
• 時間をかけて日本語化する必要はあるだろうか?
• 英語版を同時発売しても良いのでは?
(でもマニュアル類は日本語でお願いね…)

感想文
PharmaSUGについて…
• 外国人の意見・考え方・態度・表情に直に触れられた• 初めて知ることがとても多く有益だった• DM担当者として吸収すべきことは多く、とても有意義だった• また参加したい!

お・ま・け
日本語版SAS6.12のODS機能どこまで出来るの?

動機は…
• 恥ずかしながら、今回「ODS」なる物を初めて知ったぞ…
• チュートリアルを聞いた限りでは…
すごいぞ! 便利そうだ! 興味ありあり!
使ってみたい!
• 6.12から導入されていると言っていたが、どの程度の機能制限があるものか…
• 試してみねば!

さっそく実験!
• proc contentsの情報をRTFに出力してみる
data a ;a=10; output ;
a=11; output ;run ;ods rtf file='c:¥work¥ods-rtf.rtf' ;proc contents data=work._all_ ;run ;ods rtf close ;期待した出力結果
The SAS System
The CONTENTS Procedure-----Directory----Libref:

WORKEngine:

V8

Physical Name:

C:Temporary Files-TD92399

File Name:

C:Temporary Files-TD92399# NameMemtypeODSOUTITEMSTO
R1

FileSize Last Modified
13312 23NOV1999:02:04:24

でも結果は…!?
• 日本語版SAS6.12ではODSステートメントを全く認識してくれなかった!
17 ods rtf file='c:¥work¥ods-rtf.rtf' ;--180

こんなの出ました

ERROR 180-322: ステートメントは無効，又は順序が正しくありません．

• コードの書き方がまずかった?
• ガセネタだったのか?
• 困ったときのSAS頼み (+_+)

SAS社からの情報 (1)実は、6.12ではね…
• _print_と_disk_の２つのマクロ変数と、outputプロシジャを使ってODS機能を実現• 日本語版6.12でのODS機能は、プロトタイ
プとしてMIXEDとGENMODプロシジャのみで使用可能

SAS社からの情報 (2)実は、6.12ではね…
• た だ し、 そ の 機 能 は S A S デー タ セ ッ ト やoutput ウィンドウへの出力 / 非出力を制御するにとどまっている• さらに、現バージョンではHTMLでの出力もサポートされていない

SAS社からの情報 (3)でも、V8ではね…
• V8ではODSステートメントに統一
その代わりに…
その代わりに…

• _print_及び_disk_のマクロ変数は廃止• OUTPUTプロシジャも廃止• MAKEステートメントのNOPRINTオプション廃止• 変数名および表名に一部変更あり(詳細はSASの方に聞いてください)

サンプルコード (1)• 例えば、MIXEDプロシジャの結果の一部をSASデータセットやOUTPUT Windowへ出力する場合プリント出力（outputウィンドウへの出力）を抑制するためのマクロ変数%let _print_ = off ; /*** 抑制する場合 ***/
%let _print_ = on ; /*** 出力する場合 ***/OUTPUTプロシジャのために情報を保持しておくマクロ変数%let _disk_=on;%let _disk_=off;サンプルコード (2)• << 使用例 >>data data1;
do g = 1 to 2;
do I = 1 to 10;
y = rannor(12345);
output;
end;
end;
run;
%let _print_ = on;%let _disk_ = on;proc mixed data=data1;class g;model y=g /solution;
make 'solutionF' out=out1 noprint;
make 'classlevels' noprint;
run;proc output;run;SAS6.12のODS機能はproc outputで出力制御

右マウスボタンでメニューを呼び出し、• "make"選択でデータセットを作成
make"選択でデータセットを作成• "print"選択でprint"選択で outputウィンドウへ出力
outputウィンドウへ出力

V6のproc outputの詳細は…
• SAS/STAT Software
Changes and Enhancements
through Release 6.11 (p.783～)

おわりに• チュートリアル(V8)のODSとV6のODSはイメージが全然違うぞ!
• 我々が希望するODS機能を使うためにはV8が必須• 1日も早くV8をリリースしてね＞ がんばれSAS Japan!

Saettleの摩天楼?
(撮影：SAS-J吉田さん)