>100 Views
January 27, 26
スライド概要
SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです
SAS Package ハンズオン ワークショップ マルホ株式会社 臨床開発部 データサイエンスグループ 山野辺浩己 2026-01-28 大阪SAS勉強会: ハンズオン
免責事項 本発表で示す内容や意見は、発表者個人の見解に基づくものです。所属する組 織や団体の公式見解を示すものではありません。内容の正確性や完全性につい て保証するものではありません。本資料の利用により生じたいかなる損害につ いても、発表者は責任を負いません。
ハンズオン 10:00~10:40 SAS Packageについて 山野辺浩己 Hiroki Yamanobe 10:40~11:20 SAS Packageの作り方/使い方 仲家諒 Ryo Nakaya 11:20~12:00 PharmaForestについて 森岡裕 Yutaka Morioka
SAS Packageとは SAS Packages Frameworkで使うことが出来るSASのパッケージ SAS Packages(パッケージそのもの) 実体: 特定のルールに従って整理された Zipファイル 中身: 便利なマクロ、関数、データ、ドキュメントなどが1つにまとめられている メリット: これを使うと、長いコードをコピペしたり、複雑なパス設定をすることな く、%loadPackage(パッケージ名) だけで機能が使えるようになります。
SAS Packages Frameworkとは SAS Packages Framework(SPF)はSASでパッケージ管理を可能とするフレームワーク SAS Packages Framework (SPF) Bartosz Jablonski氏によって開発された、SASコードやリソースをプロジェクト横断的に構成・共有 するための方法を標準化するもの。 SASコード、フォーマット、マクロ、関数を整理するための統一された構造を提供。 コード、データ、ドキュメントを、再利用可能な「SASパッケージ」としてバンドル化(ZIP)。 異なるプロジェクト間での、共有資産の簡単な読み込み(ロード)と展開が可能。 品質の一貫性、開発の効率化、そして知識の共有ができる!
PharmaForestとは What’s PharmaForest? 医薬品開発向け Phuse Japan OST のメンバーが SAS Packageの 創立 共同リポジトリ 有志作成の SPFを通して パッケージが 呼び出すことが 格納 可能 e.g. PharmaForest内の[OncoPlotter]を使いたい場合, SPF(SAS Package Framework)導入環境において %installPackage(OncoPlotter, mirror=PharmaForest) %loadPackage(OncoPlotter)
まとめ SAS Package Framework (SPF) SASでパッケージを動作させる環境 SAS Package SASのパッケージ PharmaForest SAS Packageの共同レポジトリ(RのCran, Pythonのpipのようなもの)
セットアップ
セットアップ SPF 1:パッケージ保管場所の設定 2:SPFinit.sasの実行 以上
セットアップ SPF 1:パッケージ保管場所の設定 2:SPFinit.sasの実行 以上 上記は通常のSASの処理 永久フォルダのファイルを除き、SASを再起動するごとに行う必要がある
セットアップ SPF 1:パッケージ保管場所の設定 2:SPFinit.sasの実行 以上 1: パッケージ保管場所の設定 Filename packages ここにSASパッケージを保管される。(記載は例。任意のフォルダでOK) ネットが使えない環境の場合、ここにパッケージを格納すればOK filename packages "C:\Temp\SAS_PACKAGES\packages"; filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/SPFinit.sas" ; %include SPFinit; %installPackage (SPFinit) 上記は通常のSASの処理 永久フォルダのファイルを除き、SASを再起動するごとに行う必要がある
セットアップ SPF 1:パッケージ保管場所の設定 2:SPFinit.sasの実行 以上 1: パッケージ保管場所の設定 Filename packages ここにSASパッケージを保管される。(記載は例。任意のフォルダでOK) ネットが使えない環境の場合、ここにパッケージを格納すればOK filename packages "C:\Temp\SAS_PACKAGES\packages"; filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/SPFinit.sas" ; %include SPFinit; %installPackage (SPFinit) 2: SFPinit.sasの実行 上記は通常のSASの処理 永久フォルダのファイルを除き、SASを再起動するごとに行う必要がある
セットアップ Ex. : %installPackage(SPFinit) %installPackageはSPF環境で使えるマクロ。 指定したファイルをinstall(ダウンロード)出来る。 install先は[1:] で指定した保管場所(例: C:\Temp\SAS_PACKAGES\packages) SPF 1:パッケージ保管場所の設定 2:SPFinit.sasの実行 以上 filename packages "C:\Temp\SAS_PACKAGES\packages"; filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/SPFinit.sas" ; %include SPFinit; %installPackage (SPFinit) 上記は通常のSASの処理 永久フォルダのファイルを除き、SASを再起動するごとに行う必要がある
セットアップ [Ex.]でSPFinitをinstallしておけば、 2回目以降は[filename packages]+[%include SPFinit]でOK filename packages "C:\Temp\SAS_PACKAGES\packages"; %include packages(SPFinit); SPF 1:パッケージ保管場所の設定 2:SPFinit.sasの実行 以上 filename packages "C:\Temp\SAS_PACKAGES\packages"; filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/SPFinit.sas" ; %include SPFinit; %installPackage (SPFinit) 上記は通常のSASの処理 永久フォルダのファイルを除き、SASを再起動するごとに行う必要がある
セットアップ 1回目: パッケージフォルダの指定+SPFinitの実行+SPFinitのインストール(ダウンロード) filename packages "C:\Temp\SAS_PACKAGES\packages"; filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/SPFinit.sas" ; %include SPFinit; %installPackage(SPFinit) 2回目以降:パッケージフォルダの指定+SPFinitの実行 filename packages "C:\Temp\SAS_PACKAGES\packages"; %include packages(SPFinit.sas); filename packages "C:\Temp\SAS_PACKAGES\packages"; filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/SPFinit.sas" ; %include SPFinit; %installPackage (SPFinit) SPF準備完了!!
セットアップ 1回目: パッケージフォルダの指定+SPFinitの実行+SPFinitのインストール(ダウンロード) filename packages "C:\Temp\SAS_PACKAGES\packages"; filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/SPFinit.sas" ; %include SPFinit; %installPackage(SPFinit) 2回目以降:パッケージフォルダの指定+SPFinitの実行 filename packages "C:\Temp\SAS_PACKAGES\packages"; %include packages(SPFinit.sas); ハンズオン1 filename packages "C:\Temp\SAS_PACKAGES\packages"; filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/SPFinit.sas" ; 1: パッケージフォルダの作成(任意の場所 例:C:\Temp\SAS_PACKAGES\packages) %include SPFinit; 2: 上記の[1回目:]のコードを実行して、SPFinit.sasがinstallされるのを確認 %installPackage (SPFinit) (フォルダにSPFinit.sasがダウンロードされているのを確認) 3:SASのセッションを閉じて、再度SPFがセットアップ出来るか確認
セットアップ 手動でリンク先の[SPFinit.sas]を格納 1回目: パッケージフォルダの指定+SPFinitの実行+SPFinitのインストール(ダウンロード) filename packages "C:\Temp\SAS_PACKAGES\packages"; filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/SPFinit.sas" ; %include SPFinit; %installPackage(SPFinit) 2回目以降:パッケージフォルダの指定+SPFinitの実行 filename packages "C:\Temp\SAS_PACKAGES\packages"; %include packages(SPFinit.sas); SAS環境で外部接続が不可の場合
セットアップ SAS ondemand ** 1回目; filename packages "/home/u999999/temp/packages"; filename SPFinit url "https://raw.githubusercontent.com/yabwon/SAS_PACKAGES/main/SPF/SPFinit.sas"; %inc SPFinit; %installPackage(SPFinit); ** 2回目以降; filename packages "/home/u999999/temp/packages"; %include packages(SPFinit.sas); SAS ondemand
SPFで使えるマクロ %installPackage(パッケージ名 , sourcePath=http://xxxxx); 対象パッケージをインストールする。PharmaForest対象だとmirror=pharmaforest, またはmirror=3で代替可能 %loadPackage(パッケージ名) 対象パッケージを読み込む。 %listPackages 保管されているパッケージを一覧にする。Pythonの pip list や Rの installed.packages()と同様の機能 %helpPackage(パッケージ名) 対象パッケージのhelp情報を出力する。 %unloadPackage(パッケージ名) 読み込んだ対象パッケージをunread(削除)する %previewPackage(パッケージ名) ロードせずに中身(どんなファイルが含まれているかなど)を確認する。 %verifyPackage(パッケージ名) パッケージが正しくインストールされているか検証する。 %loadPackageS(パッケージ名) %loadPackage のサイレント版 %generatePackage() 自分で書いたコードからパッケージを作成する。 %extendPackagesFileref() パッケージの保存場所を拡張する。 %bundlePackages() / %unbundlePackages(): 複数のパッケージをまとめたり展開したりする(2025年末に追加された機能)。
SAS Package Frameworkの挙動
SAS Package Frameworkの挙動 SAS SAS package PC SAS package in github
SAS Package Frameworkの挙動 SAS SAS packagesはZIPファイルにSASコードが格納されている. (SAS macro, function, format, ヘルプ情報etc) SAS package PC SAS package in github
SAS Package Frameworkの挙動 SAS SAS package PC SAS package in github
SAS Package Frameworkの挙動 SAS SAS package PC %installPackage(SAS Package) SAS package SAS package in github
SAS Package Frameworkの挙動 SAS SAS package PC %installPackage(SAS Package) SAS package SAS package in github
SAS Package Frameworkの挙動 SAS SAS package PC SAS package %installPackage(SAS Package) SAS package SAS package in github %loadPackage(SAS Package)
SAS Package Frameworkの挙動 コードが使えるように!! SAS SAS package PC SAS package %installPackage(SAS Package) SAS package SAS package in github %loadPackage(SAS Package)
SAS Package Frameworkの挙動 2回目以降は・・・ SAS SAS package PC SAS package %installPackage(SAS Package) SAS package SAS package in github %loadPackage(SAS Package) 既にinstallされているため、 %loadPackageだけでOK
SAS Package使用の流れ • How to using: – SPFのセットアップ – ダウンロード: Install SAS package(OncoPlotter) – 読み込み: Load SAS package(OncoPlotter) – 実行: Run macro(or format, function) in SAS package
SAS Package使用の流れ • How to using: – SPFのセットアップ – ダウンロード: Install SAS package(OncoPlotter) – 読み込み: Load SAS package(OncoPlotter) – 実行: Run macro(or format, function) in SAS package [Ex.]でSPFinitをinstallしておけば、 2回目以降は[filename packages]+[%include SPFinit]でOK filename packages "C:\Temp\SAS_PACKAGES\packages"; %include packages(SPFinit);
SAS Package使用の流れ • How to using: – SPFのセットアップ – ダウンロード: Install SAS package(OncoPlotter) PharmaForestは下記省略形が可能 – 読み込み: Load SAS package(OncoPlotter) ** install SAS Package; – 実行: Run macro(or format, function) in SAS package %installPackage(oncoplotter, mirror=3) or %installPackage(oncoplotter, mirror=pharmaforest) ** install SAS Package; %installPackage(oncoplotter, sourcePath=https://github.com/PharmaForest/OncoPlotter/raw/main/)
SAS Package使用の流れ • How to using: – SPFのセットアップ – ダウンロード: Install SAS package(OncoPlotter) – 読み込み: Load SAS package(OncoPlotter) – 実行: Run macro(or format, function) in SAS package ** load SAS Package; %loadPackage (oncoplotter)
SAS Package使用の流れ • How to using: – SPFのセットアップ Dummy_adtteはパッケージ内にバンドルされて – ダウンロード: Install SAS package(OncoPlotter) いるため、すぐにサンプルコードが実行可能 – 読み込み: Load SAS package(OncoPlotter) – 実行: Run macro(or format, function) in SAS package ** KM plot; %kaplan_meier_plot( data = dummy_adtte, groupn = TRTPN, groupc = TRTP, Time_var = AVAL, Censore_var = CNSR, Censore_val = 1, Title = %nrquote(Kaplan-Meier Curve Example), Group_color_list = %nrquote(black red blue green), Group_linepattern_list = %nrquote(solid dash longdash shortdash), XLABEL = %nrquote(Survival Time (Month)), YLABEL = %nrquote(Probability), AxisValues = %nrquote(0 to 15 by 1), Generate_Code = N );
SAS Package使用の流れ ** 1. set SPF; filename packages "C:\Temp\SAS_PACKAGES\packages"; %include packages(SPFinit.sas); ** 2. install SAS Package; %installPackage(oncoplotter, mirro=3) ** 3. load SAS Package; %loadPackage(oncoplotter) ハンズオン 1: SPFを実行 2: パッケージのinstall 3: パッケージのLoad 4: %Kaplan_meier_plot()の実行 ** 4. KM plot; %kaplan_meier_plot( data = dummy_adtte, groupn = TRTPN, groupc = TRTP, Time_var = AVAL, Censore_var = CNSR, Censore_val = 1, Title = %nrquote(Kaplan-Meier Curve Example), Group_color_list = %nrquote(black red blue green), Group_linepattern_list = %nrquote(solid dash longdash shortdash), XLABEL = %nrquote(Survival Time (Month)), YLABEL = %nrquote(Probability), AxisValues = %nrquote(0 to 15 by 1), Generate_Code = N );
SAS Package使用の流れ ** 1. set SPF; filename packages "C:\Temp\SAS_PACKAGES\packages"; %include packages(SPFinit.sas); ** 2. install SAS Package; %installPackage (oncoplotter, mirro=3) https://github.com/PharmaForest/oncoplotter/raw/main/oncoplotter.zip ** 3. load SAS Package; %loadPackage(oncoplotter) ハンズオン 1: SPFを実行 手動でリンク先のファイルを格納 2: パッケージのinstall 3: パッケージのLoad 4: %Kaplan_meier_plot()の実行 ** 4. KM plot; %kaplan_meier_plot( data = dummy_adtte, groupn = TRTPN, groupc = TRTP, Time_var = AVAL, Censore_var = CNSR, Censore_val = 1, Title = %nrquote(Kaplan-Meier Curve Example), Group_color_list = %nrquote(black red blue green), Group_linepattern_list = %nrquote(solid dash longdash shortdash), XLABEL = %nrquote(Survival Time (Month)), YLABEL = %nrquote(Probability), AxisValues = %nrquote(0 to 15 by 1), Generate_Code = N ); SAS環境で外部接続が不可の場合
Forest Navigator
Forest Navigator パッケージのナビをしてくれるAI(Beta Ver) Dr. Forest: Master navigator Dr. Apple: Support navigator SAS Package Lady: 気軽に聞けるマイGPTを使ったナビゲーター https://chatgpt.com/g/g-6881d98193ec8191abb19e4e920cb64c-forest-navigator たくさんパッケージ あるんだけど どれを使えばいいの?
Forest Navigator パッケージのナビをしてくれるAI(Beta Ver) Dr. Forest: Master navigator
Forest Navigator パッケージのナビをしてくれるAI(Beta Ver) Dr. Forest: Master navigator Image generated using ChatGPT 5 (OpenAI). For illustrative purposes only.
Forest Navigator パッケージのナビをしてくれるAI(Beta Ver) Dr. Forest: Master navigator Image generated using ChatGPT 5 (OpenAI). For illustrative purposes only.
Forest Navigator パッケージのナビをしてくれるAI(Beta Ver) Dr. Forest: Dr. Apple: SAS Package Lady: Image generated using ChatGPT 5 (OpenAI). For illustrative purposes only.
Forest Navigator パッケージのナビをしてくれるAI(Beta Ver) Dr. Forest: Master navigator Dr. Apple: Support navigator SAS Package Lady: SAS Package creation supporter Dr. Forestは、ほとんどのPackageについての概要と、 No.1~15のパッケージについて答えることが出来る。 パッケージについて聞きたいときは、「まずDr. Forestへ」 Image generated using ChatGPT 5 (OpenAI). For illustrative purposes only.
End of slide Thank you
引用文献 画像: いらすとや(https://www.irasutoya.com/) 本資料に含まれる一部の画像は、OpenAI社が提供する生成AI「ChatGPT 5」を用いて作成されており、PharmaForestの紹介 に使用されています。 これらの画像は説明補助を目的としており、実際のデータとは関係ありません。 連絡先: [email protected] マルホ株式会社 データサイエンス部統計解析グループ 山野辺浩己