試してみよう{renv}!

>100 Views

April 05, 26

スライド概要

profile-image

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

シェア

またはPlayer版

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

ダウンロード

関連スライド

各ページのテキスト
1.

試してみよう{renv}! R with Pharma Lab #1 中嶋 優一

2.

Agenda 1. 2. 3. 4. 5. WHY: 背景と課題 WHAT: {renv}とは? HOW: {renv}利用方法 Challenge: {renv}利用における課題 Summary 2

3.

WHY: 背景と課題 Rを実務で利用する上で重要なポイント ART model from MSA Framework (TransCelerate) Accuracy Reproducibility Traceability “GxP compliant”である 3

4.

WHY: 背景と課題 • Open-Source → Communityの形成 • 業界の課題に対して、複数企業/担当者で解決案(Packageなど)を作 成する機会が増えている。一方で • • • 「Packageのバージョンの違い」 「動いていたコードが動かない」 「他環境で再現できない」 のような問題がある。 • 特にReproducibility(再現性)の担保は、承認申請業務においても重要 な課題である。 4

5.

WHAT: {renv}とは? • • • • {renv} = Rのプロジェクト単位のPackage管理ツール。 最新versionは1.1.8 (as of March 2026)。 プロジェクトごとに独立したライブラリ環境を作成。 Packageのバージョンを固定・管理。 フェーズ コマンド 役割 初期化 init() 環境設定 追加 install() Package追加 更新 update() Package更新 記録 snapshopt() 環境を保存 確認 status() 差分確認 再現 restore() 環境を再現 5

6.

WHAT: {renv}とは? • LibraryとRepositoryの違いについて • Library: インストールされたPackageを含むディレクトリ(フォルダ) • • library(dplyr) → dplyrのライブラリをロードしているのではなく、dplyrのPackageをロードして いる。 Repository: CRANの様なPackageのソースとなるもの。その他Posit Public Package Manager, 組織内GitHub, など • install.packages() → リポジトリからPackageを取得し、ライブラリに配置することを意味する。 6

7.

HOW: {renv}利用方法 解析環境をsnapshotする 外部の解析環境を再現 7

8.

解析環境をsnapshotする 1. 新規Projectを作成する • “New Directory” → “New Project” → “Create New Project“で“Use renv with this project”を選択 • renv.lockファイル 8

9.

解析環境をsnapshotする 2. Project libraryにいくつかのPackageを新規installする • > install.packages(c("admiral", "tidyverse")) 9

10.

解析環境をsnapshotする 3. >renv::status()により、renv.lockとの 差分を確認する 4. 追加したPackageをsnapshotし、 renv.lockファイルを更新する • >renv::snapshot() 10

11.

How to use 個人の解析環境をsnapshotする 外部の解析環境を再現 11

12.

外部の解析環境を再現 • R consortium pilot 3の解析環境を再現 • 手順はADRG Appendix 1 : Pilot 3 Installation and Usageに準ずる Core Analysis Repository • adam/: Original CDISC ADaM Pilot data created in SAS used for comparison • submission/adam: R generated ADaM datasets • submission/output: R generated TLFs • submission/programs: Production and QC programs for ADaMS • submission/sdtm:Original CDISC SDTM Pilot data created in SAS • .Rprofile: Project startup file to set up environment, • renv.lock: Locks in the versions of R packages and version of R • vignettes/: Markdown files that render TLFs and Datasets for Website 12

13.
[beta]
外部の解析環境を再現
1. RStudioにおいて新規Projectの作成, Git RepositoryをClone
•

Create Project → Version Control → Git

2. {renv}のinstall
•
•

> install.packages("remotes")
> remotes::install_version("renv", version = "0.17.0")
13

14.

外部の解析環境を再現 3. ~rconsortiumpilot3/analysis/adam/p rogramsの直下にある”renvlock.txt”をProject直下に移動、ファ イル名を”renv.lock”に変更 4. Sessionをrestartし、renv::init()を実 行 5. renv::restore()により、lockファイルの package群を再現させる 6. renv::status()で再現されたpackageと lockファイル内のpackageを比較する 14

15.

外部の解析環境を再現 7. {pilot3utils}はzipファイルとして存在し ているので、package managerからzip ファイルをinstall 8. adsl.rを実行し、Error無く動くかを確認 • sdtmへのpathは設定が必要。 This Photo by Unknown Author is licensed under CC BY-SA-NC 15

16.

Challenge: {renv}利用における課題 restore()失敗の本質 renvの守備範囲の限界 よくある落とし穴 • renv::restore() = Package install処理 • 環境不整合で簡単に失 敗… • R version • OS / system dependencies • Binary有無 • 「restoreだけ押す」は NG → 環境評価が必 要 • 再現性の範囲: • Package version • R / OS / system dependencies • 新R × 古いPackage( 上三角領域)=不安定 • 完全再現ではない → 必要に応じて Docker 等 • Binaryが存在しない → Source install → 失 敗 • lockfileとR versionの不 整合が主因 * RのPackage install形式には2種類あり、①コンパイル済みの Binary形式 / ② 各個人のPCでコンパイル(Rtoolsなど)が必要なSource形式 フが存在する。後者はOS, R versionに依存するため、restoreが失敗する主因となる。 16

17.

Summary: 承認申請時における{renv}利用の考察 • 解析に関する情報はADRGに記載 1. OS version 2. R version 3. R package version & Description → renv.lockfileと生成AIの活用を!! • • + 社内で作成されたPackageを提出する場合、Install方法についても説明があった方がよい。 renv.lockファイル自体を提出し、その説明をADRGに含めることも有用。 • FDAではR SubmissionをSupportするため、追加のFormat受け入れを 開始(eCTD Technical Conformance Guide, August 25, 2025) • .rds, .rdb, .rdx, .rdata/.rda, .md, .rd, .zip, .html Post by R Consortium • PMDAはExecutableである必要はないが、CDE(中国当局)は Executableである必要があるため、DockerなどのSolutionなども検討が 必要 (R Consortium pilot 4) 17

18.

Summary: まとめ • {renv}はR package管理ツールである • Restoreは単なるpackage install処理であり、解析環境との不整合は考 慮していない • 実務ベストプラクティス • • • • restore前に環境確認 freezeするならR versionも固定 長期プロジェクトは定期更新 再現性が重要なら:→ renv + Docker • {renv}=RENV stands for “Reproducibility, Eventually… Not Very easy”. 18

19.

最後に… PharmaSUG Japan 2026 • 現在「演題」(締め切り6/30)とスポンサー募集中です! • 参加登録は6月上旬を予定しております。参加費はまぁまぁします… 19

20.

- End of File -