要旨 : Ver.9.4 で ODS 機能と REPORT プロシジャを用いて解析帳票を作成する 法を整理した 私と同様にこれから業務で利用を開始する を対象に紹介する キーワード :ODS RTF REPORT プロシジャ スタイル要素 スタイル属性 インラインフォーマット 2

Similar documents
ODS 機能と REPORT プロシジャを用いた解析帳票の作成 これから業務で利用を始める人のために 太田裕二 マルホ株式会社データサイエンス部 Creation of Tables using ODS and REPORT Procedure -For Users Begin to Work in

帳票 Mockup からの RTF 用テンプレート SAS プログラム自動作成ツール Taiho TLF Automated Tool の紹介 伊藤衡気 1 栗矢芳之 2 銭本敦 2 ( 株式会社タクミインフォメーションテクノロジー 1 大鵬薬品工業株式会社 2 )

要旨 : SAS9.4 より Output Derivery System( 以下 ODS) に追加された Report Writing Interface( 以下 RWI) を使用して HTML 形式のレポート作成の実用性と可能性について検討する なお HTML 出力には タグの綺麗さから ODS

Proc luaを初めて使ってみた -SASでの処理を条件に応じて変える- 淺井友紀 ( エイツーヘルスケア株式会社 ) I tried PROC LUA for the first time Tomoki Asai A2 Healthcare Corporation

Microsoft PowerPoint - SUGI2011_EPS_Konno.ppt

データ構造の作成 一時 SAS データセットと永久 SAS データセットの作成 テキストファイルから SAS データセットを作成するための DATA ステップの使用例 : Data NewData; Infile "path.rawdata"; Input <pointer-control> var

要旨 : データステップ及び SGPLOT プロシジャにおける POLYGON/TEXT ステートメントを利用した SAS プログラムステップフローチャートを生成する SAS プログラムを紹介する キーワード :SGPLOT, フローチャート, 可視化 2

_責)Wordトレ1_斉木

Microsoft Word - sample_adv-programming.docx

DATA Sample1 /**/ INPUT Price /* */ DATALINES

旅のしおり

Slide 1

スタイルシートでデザインを整えよう

コンピュータリテラシ

IBM Business Process Manager CSS による Coach レイアウト制御ガイド WebSphere 2014 IBM Corporation


エクセル応用 2016 第 1 章関数の利用 1 作成するブックを確認する 2 関数の概要 3 数値の四捨五入 切り捨て 切り上げを使う 4 順位を求める 5 条件で判断する 6 日付を計算する 7 表から該当データを参照する 第 2 章表作成の活用 1 作成するブックを確認する 2 条件付き書式を

3 4 2

立ち読みページ


vi 目次 画像のサイズ設定 画像の効果 画面の取り込みとトリミング Office の共通基本操作 図形 図形の挿入と削除 図形の編集 図形の背景色の透過 Office

Excel2013基礎 数式と表編集

Web データ管理 HTML+CSS (3) (2 章 ) 2011/10/19( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/23

目次 1 文字数や行数を指定する 段組み 文書全体に段組みを設定する 文書の途中から段組みを設定する 段の幅 ( 文字数 ) や間隔を設定する ページ番号 ページ番号をつける 先頭ペ

1セル範囲 A13:E196 を選択し メニューの データ - 並べ替え をクリック 並べ替え ダイアログボックスで 最優先されるキー から 年代 を選択し OK をクリック ( セル範囲 A13:E196 のデータが 年代 で並び替えられたことを確認する ) 2セル範囲 A13:E196 を選択し

図表貼り付けの原則 Excel などで処理した図表を Word に貼り付ける際に注意したい事項は以下のようになります Excel グラフ の場合 1. Excel 内で, あらかじめ, グラフエリアの大きさ フォント タイトル 軸ラベルなどを十分調整しておきます 2. タイトルはグラフ内にも入れてお

練習問題 1-1 1クイックアクセスツールバー 2タイトルバー 3リボン 4タブ 5ステータスバー 6ノート 7コメント 8 表示モードショートカット 9ズーム 練習問題 1-2 [1] ファイルを開く [ ファイル ] タブ-[ 開く ] [ 開く ] 画面で保存場所を指定 [ ファイルを開く ]

合宿事前講座 Web 開発の基本編その 2 情報研究会モブ 薗田海樹 The. H.30 情報研究会 1

PowerPoint プレゼンテーション

レポート作成に役立つWord2013の機能

Exam : A JPN Title : SAS Base Programming for SAS 9 Vendor : SASInstitute Version : DEMO Get Latest & Valid A JPN Exam's Question and Answ

定期講座ガイド ~Office2016~ 協立情報通信株式会社

地域ポータルサイト「こむねっと ひろしま」

. フォントを OS にインストールする インターネット等で入手したフリーのフォントをインストールすることにより Windows に標準でインストールされているフォント以外のものを利用することができます 多数のフォントをインストールするとパソコンの動作が遅くなります 必要なフォント以外はインストール

Microsoft Word - no05-06

2 / 25 複数ソフトの組み合わせ テキストファイルを Excel で開く テキスト形式 (.txt) で保存したファイルを Excel で利用しましょう 第 14 講で保存した west.txt を Excel で開きます 1. Excel を起動します 2. [Office ボタ

1.eps

PowerPoint プレゼンテーション

変更履歴 版数変更日変更内容 /9/1 初版設定

エクセルの基礎を学びながら、金額を入力すると自動的に計算され、1年分の集計も表示される「おこづかい帳」を作りしょう

XXXXXXXXXXX様向け

ことばを覚える

JavaScript 演習 2 1

Oracle BI Publisherを利用したレポートの作成

編集記号の表示 非表示と 改ページ記号 これは編集記号であり 文書 印刷時には無視される 2.2. アウトラインの作成ここでは [ アウトライン ] の設定を行う [ アウトライン ] は 段落番号と同様に連番を振る機能であるが 階層構造を持つ見出し ( 章 節など ) を作成できる 今回題材にして

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

Section1_入力用テンプレートの作成

Excel 活用編 Excel を使って おみくじ と 今日の運勢 を表示させましょう I. おみくじの作成 Excel の関数を使って 本日の吉凶を表示させましょう 1. Excel の起動 Excel を起動します 1 入力を省略するために 作成途中の Book を準備しています ドキュメントか

目次 1 画像 図表番号 画像を挿入する 挿入した画像を動かす 画像の不要な部分をカット ( トリミング ) する Excel で作成したグラフを挿入する 図表番号を挿入する 引用文献... 9

完成見本 罫線表を使用して 会計報告書 を作成しましょう 1 / 15

Create!Form V11 - Excel 出力設定

CubePDF ユーザーズマニュアル

H27_別冊(1級) WEB用.indd

目次 概要... 2 フォームレイアウトデザイナー機能の設定... 3 設定したフォームレイアウトデザイナーの確認...14 その他スタイルの設定...15 フォームレイアウトデザイナーをエクスポート...17 フォームレイアウトデザイナーをインポート...18 インポート時の制限事項...19 リ

PowerPoint プレゼンテーション

2 / 16 ページ 第 7 講データ処理 ブック ( ファイル ) を開く第 6 講で保存したブック internet.xlsx を開きましょう 1. [Office ボタン ] から [ 開く ] をクリックします 2. [ ファイルの場所 ] がデータを保存している場所になっている

PowerPoint プレゼンテーション

問題 1 次の文章は Excel の作業環境について述べたものである 下線部の記述の正誤を判断し 解答群 { } の記号で答えよ ただし 下線部以外の記述に誤りはないものとする 設問 1. クイックアクセスツールバーには アプリケーション名やファイル名が表示される 設問 2. 数式バーのる ボタンを

スライド 1

< 目次 > 1. 練習ファイルのダウンロード 表計算ソフト Excel の基本 Excel でできること Excel の画面 セル 行 列の選択 セルにデータを入力する ( 半角英数字の場合 )

NLMIXED プロシジャを用いた生存時間解析 伊藤要二アストラゼネカ株式会社臨床統計 プログラミング グループグルプ Survival analysis using PROC NLMIXED Yohji Itoh Clinical Statistics & Programming Group, A

サイボウズ Office「リンク集」

ODS GRAPHICS ON; ODS GRAPHICS ON; PROC TTEST DATA=SASHELP.CLASS SIDE=2 DIST=NORMAL H0=58 PLOTS(ONLY SHOWH0)=(SUMMARY); VAR HEIGHT;

スライド 1

テキストファイルの入出力1

Microsoft Word A02

目次 STEP.1Word ファイルを小冊子にする... 1 注意... 2 STEP1-1 印刷 (EPSON) の場合... 5 STEP.2 冊子つくり... 7 STEP.3 新しいページの挿入... 7 STEP.4 見出し... 8 STEP.5 目次を作成... 9 STEP.6 冊子

PowerPoint プレゼンテーション

プレポスト【問題】

1.Wicrosoft Word2010 を起動 1 スタート ボタン スタートメニューの すべてのプログラム Microsoft Office Microsoft Word2010 と順にクリックします Microsoft Word2010 が起動します 2. ページ設定 余白 フォント フォント

Transcription:

ODS 機能と REPORT プロシジャを用いた解析帳票の作成 これから業務で利用を始める人のために 太田裕二マルホ株式会社データサイエンス部 Creation of Tables using ODS and REPORT Procedure -For Users Begin to Work in Earnest- Yuji Ohta Data Science Dept., Maruho Co, Ltd.

要旨 : Ver.9.4 で ODS 機能と REPORT プロシジャを用いて解析帳票を作成する 法を整理した 私と同様にこれから業務で利用を開始する を対象に紹介する キーワード :ODS RTF REPORT プロシジャ スタイル要素 スタイル属性 インラインフォーマット 2

本日の内容 背景 ODS 機能 一般的なプロシジャ レポート作成プロシジャ 解析帳票作成プログラムの紹介 ODS RTFとREPORTプロシジャの主なステートメント 有効性の解析帳票を例として 複数ページにまたがる解析帳票を例に 3

背景 ( いまどき RTF??) 電子データ提出対応の業務フローの検討 解析帳票の英語化 従来からのMWの要望 Wordとの親和性の高い RTF 形式の解析帳票 RTF 形式対応の解析帳票テンプレート集の作成 被験者背景 有効性連続値 有効性カテコ リ 有効性二値 有効性生存時間 安全性 症例一覧表 第 II 相以降の試験で想定される解析帳票を一通り用意 4

解析帳票の要件 書式の統一フォント ; Courier New フォントサイズ ; 8pt 背景色 ; 白文字 ; 総括報告書の本文中に編集なしで貼付用紙の向き ; 縦向き余白 ; 上下 3cm 左右 2.5cm 脚注 ; 表の直下に表示 1 ページの出 データ 多 出 ページ 少 複数の出 項目を同一列に表示セル間やセル内の余分なスペースを省く 間の区切りは罫線 私のこれまでの経験 DDE 機能を用いた Excel 形式の解析帳票の作成が中心 ODS 機能は使うとしても ODS OUTPUT でプロシジャ結果をデータセットに格納 ODS RTF で 持ち検討用レベルの資料作成 5

まずは情報収集 閲覧可能な役 つODS 関連の情報はいろいろある 過去のSASユーザー総会や海外 SASユーザーの論文 発表資料 ODSによるレポート作成のトレーニングテキスト SASユーザーのHP SAS User Guide が しかし 簡単には思い通りの解析帳票は作れるはずもなく トライ & エラーの繰り返し で なんとか 解析帳票テンプレート集を一通り作れるようになった 理解した内容をまとめたので 私のようにこれまでに RTF の解析帳票の経験があまりない に紹介 6

本日の内容 背景 ODS 機能 一般的なプロシジャ レポート作成プロシジャ 解析帳票作成プログラムの紹介 ODS RTFとREPORTプロシジャの主なステートメント 有効性の解析帳票を例として 複数ページにまたがる解析帳票を例に 7

一般的なプロシジャ ODS 機能はプロシジャや DATA ステップからの結果を様々な形式の外部ファイルに出 できる SAS プロシジャ ( 一部のプロシジャ除く ) の出 プロセス テンプレートストア SAS プロシジャ テーブルテンプレート ( 出 構造の定義 ) スタイルテンプレート ( ファイル全体の体裁の定義 ) データコンポーネント ( 数値や文字 ) 出 オブジェクト 出 先 (RTF HTML PDF など ) 8

スタイル要素出 ファイルの特定部分に適用するスタイル属性 ( フォント 色 罫線などのスタイルの特徴 ) の集まり SystemTitle Header のような部分ごとに定義 SystemTitle 体裁をコントロールするためには該当部分の スタイル要素名 と定義すべき スタイル属性 を特定 ProcTitle Body Header Data RowHeader 全スタイル要素及び全スタイル属性は SAS 9.4 Output Delivery System: User's Guide の Chapter 11 及び Chapter 12 で参照可能 9

ODS MARKUP ステートメントで特定プロセスを簡略化 ods markup file = 'ODS MARKUP.html' /* 出力 Body ファイル名 */ stylesheet = 'StyleSheet.css' /* 出力スタイルシートファイル名 */ type = style_popup /* スタイル要素表示オプション */ style = Styles.HTMLblue ; /* スタイルテンプレート名 */ ods select Moments ; proc univariate data = SASHELP.CLASS ; var WEIGHT ; run ; ods markup close ; スタイル要素をダブルクリックすると全属性が表示されるウインドウが開く ポインタをかざすとスタイル要素名を表示 10

レポート作成プロシジャ レポート作成プロシジャ (REPORT PRINT 及び TABULATE ) の出 プロセスは 他のプロシジャと少し異なる レポート作成プロシジャ ファイル体裁の定義 出力構造の定義 テンプレートストア スタイルテンプレート ( ファイル全体の体裁の定義 ) データ ( 数値や文字 ) テ ータコンポーネントと呼ぶのかは未確認 出 先 (RTF HTML PDF など ) 出 構造はテーブルテンプレートではなくプロシジャで定義プロシジャ内のステートメントでデフォルトから任意の出 構造に変更可 プロシジャ内のステートメントでスタイル属性も変更可 11

本日の内容 背景 ODS 機能 一般的なプロシジャ レポート作成プロシジャ 解析帳票作成プログラムの紹介 ODS RTFとREPORTプロシジャの主なステートメント 有効性の解析帳票を例として 複数ページにまたがる解析帳票を例に SAS Ver. 9.4 12

ODS RTF と REPORT プロシジャの 主なステートメント ods rtf file = ' 出力ファイル名 ' style = スタイルテンプレート名 notoc_data ; 目次データの出 制御オプション proc report data = 出力データ名 missing 他のオプション ; column レポート項目 1 レポート項目 2 ; define レポート項目 / オプション ; compute 場所もしくはレポート項目 ; SAS ステートメント ; endcomp ; break タイミングブレーク変数 / オプション ; run ; ods rtf close ; 欠測値を有効値として扱うオプション レポート対象となる変数 各レポート項目の役割と表示 法 compute ブロック ; compute-endcomp 間の SAS ステートメントを実 ブレーク時 ( ブレーク変数の値が変わった時 ) にオプションに指定したアクションを実 注 ; 解析帳票テンプレート集の作成に用いたものに限定 13

有効性の解析帳票を例として 並 群間プラセボ対照試験における有効性の部分集団解析 出 データセット 年齢カテゴリ投与群解析時期投与群 時期統計量 本発表ユーザー定義スタイルテンプレートは用いずに REPORT プロシジャ及びグローバルステートメントのみでスタイル属性を指定する 法を紹介する ユーザー定義スタイルテンプレートを用いて同体裁の解析帳票を作成するプログラムは論文集の付録で紹介している 14

出 構造の変更 ods rtf file = " 有効性の解析帳票 _01.rtf" notoc_data style = Styles.Default ; proc report data = DATA missing split = ' ' ; column AGEGR1N AGEGR1 TRT_VISITN TRT_VISIT ヘッダー部分ラベル追加 LSMEAN SE ('95% CI' LOWER UPPER) 複数列にわたるラベル1 ('Comparison to Placebo' C_LSMEAN C_SE ヘッダー部分ラベル追加 ('95% CI' C_LOWER C_UPPER)) ; 複数列にわたるラベル2 define AGEGR1N / order noprint ; 出 順データの役割をORDERとし NOPRINTオプションで非表示 ヘッダー部分のラベル define AGEGR1 / 'Age' ; define TRT_VISITN / order noprint ; define TRT_VISIT / 'Treatment Visit' ; define LSMEAN / 'LS Mean' ; define C_UPPER / 'Upper'; run ; ods rtf close ; ヘッダー部分ラベルのセル内改 15

proc report data = DATA ( 省略 ) spanrows ; define AGEGR1 / order 'Age' ; compute after _page_ ; line '95% confidence interval' ; endcomp ; run ; 各出 ページの最後に脚注を表示 制御されたセルの結合 同じデータの繰り返し出 を制御 ページごとに処理を実 する COMPUTE ブロック構文 compute after / before _page_ ; SAS ステートメント ; endcomp ; 16

スタイル属性の変更 プロシジャ内のステートメントでスタイルテンプレートで定義されているスタイル属性を変更することができる REPORT プロシジャでは Location ごとあるいは特定のセルごとにスタイル属性を指定 REPORT プロシジャ内のスタイル定義の記述 法にはいくつかの 法があり 目的に応じて使い分ける Report 本発表で取り扱う Location は図の 4 種類のみ REPORT プロシジャで指定することができるスタイル属性は Base SAS 9.4 Procedures Guide の Table 55.9 で参照可能 Header Column Lines 17

PROC REPORT ステートメントで記述 STYLE(Location) オプションを用いてテーブル全体に影響するスタイル属性 すべてのレポート項目に共通するスタイル属性を指定 style(location) = { スタイル属性 1 スタイル属性 2 } proc report data = DATA missing split = ' ' spanrows style(report) ={just=left テーブルの表示位置をファイル内で左寄せ bordercolor=black borderstyle=solid borderwidth=1pt 罫線の色 線種 太さ frame=hsides テーブル枠の罫線を上下のみ表示 rules=groups テーブル内の罫線を Header と Column の間 Column と Lines の間のみ表示 cellpadding=0 cellspacing=0} STYLE オプション構文 セル内の左右上下のスペースとセル間のスペースを削除 つづく 18

つづき style(header) ={asis=on vjust=bottom background=white foreground=black font=('courier New', 8pt)} style(column) ={asis=on vjust=top background=white foreground=black font=('courier New', 8pt)} style(lines) ={asis=on just=left vjust=top background=white foreground=black font=('courier New', 8pt) borderbottomstyle=none} ; run ; 脚注セルの下部罫線を非表示 ヘッダー部分 データ部分 脚注部分のスタイル属性を指定 属性の種類 属性の値 内容 asis on 先頭の空白と改 を無視せず表示する vjust bottom テキストの縦 向の位置揃えを下揃えにする top テキストの縦 向の位置揃えを上揃えにする background white セルの背景色を白にする foreground black セルの前景色 ( 主にテキストの色 ) を にする font ('Courier New', 8pt) フォントを 'Courier New' サイズを 8ptにする borderbottomstyle none セル下部の罫線を表示しない just left テキストの横 向の位置揃えを左揃えにする right テキストの横 向の位置揃えを右揃えにする 19

ASIS 背景色 前景色 フォントは style(report) では指定しない style(header) & style(column) & style(lines)= {asis=on background=white foreground=black font=('courier New', 8pt)} style(report)={bordercolor=black borderstyle=solid borderwidth=1pt} style(header)= {vjust=bottom} style(report) ={just=left} style(report)= {frame=hsides} style(report)= {rules=groups} style(column)= {vjust=top} style(lines)= {just=left vjust=top} style(report) ={cellpadding=0 cellspacing=0} style(lines)={borderbottomstyle=none} 注 ;style(report)={frame=hsides} と指定しておりテーブル最下部に罫線が表示されるはずだが style(lines)={borderbottomstyle=none} が優先されているため 罫線は表示されていない 20

DEFINE ステートメントで記述 STYLE(Location) オプションを用いて特定のレポート項目のスタイル属性を指定 define AGEGR1N / order noprint ; define AGEGR1 / order style(column)={just=left cellwidth=1.6cm} run ; style(column)= {just=left} セル幅 (cellwidth) は style(header) ではなく style(column) で指定する AGEGR1 のセル幅を1.6cm データ部分を左揃え style(header)={just=left} ヘッダー部分を左揃え 'Age' ; style(header) ={just=left} style(column) ={cellwidth=1.6cm} 21

PROC REPORT ステートメントでの記述との比較 PROC REPORT ステートメントで記述した場合はすべてのレポート項目に影響を与える重複してスタイル属性が指定されているレポート項目では DEFINE ステートメントでの指定が優先 proc report ( 省略 ) style(header) ={just=center} ; レポートの全ヘッダーに影響する column ( 省略 ) ; define AGEGR1 / style(header) ={just=left} ; AGEGR1 のヘッダーにのみ影響する run ; DEFINEステートメントの指定が優先されるため AGEGR1のヘッダーは左揃えになる 22

CALL DEFINE ステートメントで記述 COMPUTE ブロック内で CALL DEFINE ステートメントを使用してセルのスタイル属性を指定 CALL DEFINE ステートメント構文 call define( 対象カラム, 'style', 'style=[ スタイル属性 1 スタイル属性 2 ] ') 対象カラムの記載方法特定の列のみを対象 ; 引用符囲みのレポート項目名あるいは _Cn_(n は列数 ) ( 例 ;"AGEGR1" "_C3_") すべての列を対象 ; _row_( 引用符不要 ) COMPUTE ブロック内では IF ステートメントが使用できるため 組み合わせて使用することで 及び列を特定してスタイル属性を指定することが可能 23

column AGEGR1N AGEGR1 TRT_VISITN TRT_VISIT ( 省略 ) _LINE_IND ; ブロック COMPUTE ブロック define AGEGR1N / order noprint ; define _LINE_IND / display noprint ; compute _LINE_IND ; if _LINE_IND = 10 then _LINE_IND=10 のOBSの AGEGR1のセルに下部罫線 call define('agegr1', 'style', 'style=[borderbottomwidth=1pt]') ; _LINE_IND=1 のOBSの TRT_VISITのセルにインデント if _LINE_IND = 1 then call define('trt_visit', 'style', 'style=[marginleft=0.4cm]') ; if _LINE_IND = 21 then do ; call define('trt_visit', 'style', TRT_VISIT 以降のすべてセルに下部罫線 'style=[borderbottomwidth=1pt marginleft=0.4cm]') ; call define('lsmean', 'style', 'style=[borderbottomwidth=1pt]') ; call define('c_upper', 'style', 'style=[borderbottomwidth=1pt]') ; end ; endcomp ; OBS 特定のための変数をレポート項目として追加 役割をデフォルトの ANALYSIS から DISPLAY に変更し かつ非表示設定 _LINE_IND=21 の OBS の TRT_VISIT のセルにインデント If ~~~~~ then do ; ~~~ ; end ; で複数の CALL DEFINE ステートメントを記述可能 24

AGEGR1 のグループ内の最後の OBS(8OBS 目 ) ではなく最初の OBS(1OBS 目 ) に 10 を格納していることに注意 データセット抜粋 ( 変数 _LINE_IND 追加 ) 出 結果 if _LINE_IND = 10 then call define('agegr1, 'style', 'style=[borderbottomwidth=1pt]') ; if _LINE_IND = 1 then call define('trt_visit', 'style', 'style=[marginleft=0.4cm]') ; if _LINE_IND = 21 then do ; call define('trt_visit', 'style', 'style=[borderbottomwidth=1pt marginleft=0.4cm]') ; call define('lsmean', 'style', 'style=[borderbottomwidth=1pt]') ; end ; 25

if _LINE = 1 then call define('agegr1', 'style', 'style=[borderbottomwidth=1pt]') ; if _LINE = 2 then do ; call define('trt_visit', 'style', 'style=[borderbottomwidth=1pt]') ; end ; if _INDENT = 1 then call define('trt_visit', 'style', 'style=[marginleft=0.4cm]') ; ひとつの OBS において ひとつのレポート項目に対して複数回 CALL DIFINE ステートメントを指定できない最後に実 された CALL DIFINE ステートメントが有効となり それ以外は無視されることに注意 26

インラインフォーマット機能 エスケープ文字とインラインフォーマット関数を用いてテキストとセルのスタイルを定義できる エスケープ文字は ODS ESCAPECHAR ステートメントで任意の文字を指定 インラインフォーマット関数構文と主な関数エスケープ文字 { インラインフォーマット関数引数 } 関数名引数内容例 ( エスケープ文字は ^ と表示 ) SUPER 上付きにする文字 文字を上付きに設定 'cm^{super(2)}' NEWLINE 改 したい 数 セル内改 を挿 'SOC^{newline 1}PT' PAGEOF なし 現在のページと総 'Page ^{pageof}' ページを挿 THISPAGE なし 現在のページを挿 'Page ^{thispage} of ^{lastpage}' LASTPAGE なし 総ページを挿 'Page ^{thispage} of ^{lastpage}' この他の関数は SAS 9.4 Output Delivery System: User's Guide の Table 6.4 で参照可能 27

テキストフィールドでのスタイル定義 ラベル タイトル及びフットノートのようなテキストフィールドでスタイルを定義できる テキストフィールドのスタイル定義の構文 ' エスケープ文字 S={ スタイル属性 1 スタイル属性 2 } テキスト ' エスケープ文字に '~ ods escapechar = '~'; ( チルダ ) を指定 column AGEGR1N AGEGR1X TRT_VISITN TRT_VISIT LSMEAN SE LOWER UPPER) ( 省略 ); define AGEGR1N / order noprint ; define AGEGR1X / ( 省略 ); ('~S={just=center borderbottomwidth=1pt}95% CI~{super[a]}' ヘッダーセルのスタイル ( 横 向表示位置と下部罫線 ) を定義 AGEGR1X のデータ 12-16~{newline 1}(years) 17-64~{newline 1} (years) 65-~{newline 1} (years) SUPER インラインフォーマット関数で上付き 28

ページ設定 タイトル フットノート /* ページ設定 */ options nodate nonumber /* 日時非表示 ページ番号非表示 */ papersize = "A4" /* 用紙サイズ ;A4 */ orientation = portrait /* 用紙の向き ; 縦 ( 横はlandscape) */ topmargin = 3cm bottommargin = 3cm /* 余白上下 ;3cm */ leftmargin = 2.5cm rightmargin = 2.5cm ; /* 余白左右 ;2.5cm */ タイトルとフットノートはどの Location にも属していないためプロシジャ内でスタイルを指定できない テキストフィールド内で横 向表示位置 背景色 前景色 フォントを指定 /* タイトル フットノートの指定 ( 位置 フォント サイズ テキスト )*/ title1 '~S={just=left background=white foreground=black font=("courier New", 8pt)} Table 9.9.9 Subgroup Analysis, MMRM for Percent Change from Baseline in VAS by Age Group' ; title2 '~S={just=left background=white foreground=black font=("courier New", 8pt)} Full Analysis Set' ; footnote1 '~S={just=right background=white foreground=black font=("courier New", 8pt)}Page ~{pageof}' ; PAGEOF インラインフォーマット関数でフットノートに Page XX of XX と表示 29

30

用紙余白 用紙のサイズと向き フォント 色の統一 Age Treatment Visit をキーに昇順 ヘッダー部分のセル内改 字下げ表示 繰返し出 制御 & セル結合 データ部分のセル内改 上付き文字 複数列にわたるラベルの表示 Age カテゴリごと Treatment ごとに罫線表示 セル内 セル間のスペースを削除 セル幅の指定 文字表示位置の指定 ( 縦横 ) 脚注出 テーブルを左寄せ表示 現在のページと総ページを表示 用紙余白 31

複数ページにまたがる解析帳票を例に 改ページの挿 BREAKステートメントとPAGEオプションを用いた下記構文により ブレーク時 ( ブレーク変数の値の変更時 ) に改ページを挿 することができるブレーク変数はCOLUMNステートメントし DEFINEステートメントで役割をORDERあるいはGROUPにする break after ブレーク変数 / page ; 臨床検査の解析で 検査項目の変数 (PARAMN など ) をブレーク変数にすると 1 ページに 1 つの検査項目のみ出 することができる 32

ページごとにヘッダーを変更する 各ページの最初に実 される COMPUTE ブロック内にて LINE ステートメントでレポート項目名とその出 フォーマットを指定することで データを各ページの最上部に出 することができる proc format ; value F_PARAMN 1 = 'Parameter Name 1' 2 = 'Parameter Name 2' run ; c compute before _page_ ; line PARAMN F_PARAMN. ; endcomp; 必ず出 フォーマットを指定しなければならない 追加された部分の Location は Header ではなく Lines 33

Word の表示機能を用いた改ページ 有害事象一覧表を例に Page 1 プログラム上では改ページを挿 しない Page 2 症例を識別するレポート項目の役割を ORDER とし さらに SPANROWS オプションでセル結合 3 件ほど表示できるスペースはあるが Word の 表のプロパティ の の途中で改ページする オプションを無効にした状態で出 ファイルを閲覧 Page 1 にはまだ 3 件ほど AE を表示することが可能だが 次の症例は 5 件の AE があり Page 1 だけには収まらないため Page 2 に表示される 34

最後に 今回のテーマは多少時代遅れの感がありますが 私が取り組み始めた際に理解に苦しんだ点を紹介しております また 弊社の解析帳票テンプレート集を作成するなかで使用したステートメントやオプションも一通り網羅しています これから RTF 形式の解析帳票の作成にチャレンジされる 々に参考になるのではないかと思います 一 すでに慣れ親しんでいる には物足りなかったかもしれず また より効率的な 法もあるとのご指摘もあるかもしれませんが ご容赦いただけますと幸いです もちろんご意 頂戴するのは大歓迎です 35

参考資料 今野聡富永一宏高橋伸枝.ODS RTFとREPORTプロシジャを用いた一覧表の出.SASユーザー総会 2011 論文集 SAS 9.4 Output Delivery System: User's Guide, Fifth Edition Base SAS 9.4 Procedures Guide, Seventh Edition ODSによるレポート作成 1(SASセミナー ODSによるレポート作成コースドキュメント ) ODSによるレポート作成 2(SASセミナー ODSによるレポート作成コースドキュメント ) Lori S. Parsons.Enhancing RTF Output with RTF Control Words and In-Line Formatting.SAS Global Forum 2007 http://www2.sas.com/proceedings/forum2007/151-2007.pdf 36