ODS EXCELの活用事例と課題

1.7K Views

March 29, 24

スライド概要

[第8回大阪sas勉強会] 筒井杏奈

profile-image

SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

2023年3月24日 第8回大阪SAS勉強会 ODS EXCELの活用事例と課題 大阪大学医学部附属病院 未来医療開発部データセンター情報技術グループ 筒井 杏奈 大阪大学「ワニ博士」

2.

背景 大量の集計表の作成依頼 • 二次医療圏×二次医療圏の クロス集計表 • 二次医療圏数は400弱のため 400行×400列 • 性別等、条件を変えて 650パターン ⇒ 260,00行×400列 2 of 10 表の基本形 同様の表を650パターン作成

3.

方法 ODS EXCELを使ってEXCELファイルに出力 プレゼンテーション賞 松沢享:ODS EXCEL 入門、SASユーザー 総会2019、東京、2019. https://www.sas.com/content/dam/SAS/documents/even t-collateral/2019/ja/sas-users-groupmeeting/Presentations/d-14-matsuzawa-presentationrev2.pdf 3 of 10 https://sas-boubi.blogspot.com/

4.

修正前 下準備 TEMPLATEプロシジャでスタイルを定義(詳細はSASマニュアル参照) proc template; 修正後 新しいスタイル名 define style user.mystyle; parent = styles.printer; 基となるスタイル名 class fonts / 'TitleFont2' = ('Times New Roman', 9pt) 'TitleFont' = ('Times New Roman', 9pt) (略) ; class color_list / 'bgh'=white 'bg'=white; 文字の設定 報告書の雰囲気に 背景色の設定 class data / bordercolor=grey color = cx000000 bordertopstyle=solid borderbottomstyle=solid borderleftstyle=solid borderrightstyle=solid borderbottomstyle=solid ; class header / bordercolor=grey color = cx000000 bordertopstyle=solid borderbottomstyle=solid borderleftstyle=solid borderrightstyle=solid borderbottomstyle=solid ; (略) end; 4 of 10 run; 罫線の設定

5.

ODS EXCEL ① ods excel file="xxx..xlsx" style=user.mystyle options(xxx) ; proc …. (REPORTやMEANS等の出力したいプロシジャ) ods excel close; 5 of 10 多数のオプション ・出力シート名の指定 ・オートフィル ・先頭行の固定(行数指定可) ・A1セルにタイトル表示 … 詳細は右記資料参照

6.

ODS EXCEL ② “ODS EXCEL CLOSE”で閉じない限り、 複数シートに出力可能 ods excel file="xxx..xlsx" options(xxx) ; ods excel options( sheet_name=“シート1_〇〇集計表" ); proc report (省略) run ; ods excel options( sheet_name=“シート2_××集計表" ); proc report (省略) ; run ; ods excel close; 6 of 10

7.
[beta]
ODS EXCEL ③

REPORTプロシジャで
さらなる装飾が可能

proc report data=_DONE center ;

columns ("居住地" PREF) ("所在地" _OUT0 _OUT1 - _OUT47 ) ;
define PREF / display style(column)={tagattr='type:String format:@'};
define _OUT: / display style(column)={tagattr='type:String format:@'};

compute _OUT0 ;
call define("_OUT0",'style','style=[backgroundcolor = cxf0f8ff]’);
endcomp;

run ;

7 of 10

8.

数字はでたらめです 出力結果 8 of 10

9.

振り返りとまとめ 〇 見やすさに配慮した点について評価を得た △ 意図しない挙動の発生 ⇒ SASテクニカルサポートに複数の問い合わせ △ 出力時にメモリ32GBや128GBのPCでメモリ不足でエラー ⇒ ODS EXCELは出力時にテーブル全体をメモリに格納するため テーブルが大きいと多くのメモリやCPU時間を要する* ⇒ 集計結果を60シートに分割して出力したものの メモリ32GBのPCでの総出力時間は9時間(一晩) ODS EXCELは小・中規模の解析結果をデザイン性ある形で出力するのに適しているが 大規模な解析結果の出力には不向きと考えられた * SASテクニカルサポートのご回答。参考サイト:Usage Note 56985: An out of memory condition might occur when you use the ODS destination for Excel with large tables: https://support.sas.com/kb/56/985.html 9 of 10

10.

おまけ SASの設定ファイルにて… パスの例: C:¥Program Files¥SASHome¥SASFoundation¥9.4¥nls¥ja C:¥Program Files¥SAS9.4¥SASFoundation¥9.4¥nls¥ja MEMSIZE 2GBのままになっていませんか? (SASセッションにて使用可能な仮想メモリの合計容量の制限) PCのメモリサイズによらず デフォルトは2GBです (SAS 9.4M5) メモリ不足のエラーはこれも原因でした!! 10 of 10 コンフィグファイル (手元のファイルで209行目)

11.

設定ファイルの修正方法 ① スタートメニュー>「sas」入力>「ファイルの場所を開く」 >業務で用いるSASを選択して右クリック>「プロパティ」 右クリック >「プロパティ」

12.

設定ファイルの修正方法 ② 「リンク先」のテキストをすべてコピー >「--CONFIG」の後に記載されるフォルダパスを開く "C:¥Program Files¥SAS9.4¥SASFoundation¥9.4¥sas.exe" -CONFIG "C:¥Program Files¥SAS9.4¥SASFoundation¥9.4¥nls¥ja¥sasv9.cfg"

13.

設定ファイルの修正方法 ③ 「sasv9.cfg」をデスクトップ等にコピーしてメモ帳等で開き 該当箇所を修正 元ファイルを名前を変えて退避した後(下図の「_sasv9.cfg」)、 修正済みの「sasv9.cfg」をコピーする