社区与职业:pharmaverse 地图
学会 R 只是入场券;知道自己属于哪个社区、读谁的论文、按什么节奏迁移团队,才决定你能在制药 R 这条路上走多远。本章把地图摊开给你。
8.1 社区地图:值得长期跟踪的五个据点
制药 R 不是散落的博客圈,而是一个有会议、有工作组、有共享代码基础设施(pharmaverse)的成型生态。下面五个据点按"信息密度 × 与你的相关度"排序:
- R/Pharma Summit — 每年一届的制药 R 专业会议,议题几乎全部围绕监管递交、CDISC 工作流与 GxP 验证。其官网公开的 Summit 圆桌笔记(尤其 AI 专场)是了解行业风向的最短路径。
- China PharmaRUG(中国制药 R 用户组) — 中文语境下最对口的社区:线上分享、案例讨论与国内药企/CRO 的落地经验。对身在国内、时区与语言都更友好的你,这是第一个应该"加入"而不只是"浏览"的组织。
- pharmaverse blog — admiral、tern、teal 等核心包的官方博客,发布新版本能力、设计决策与真实工作流示例。想知道"官方推荐怎么做",看这里比翻 Stack Overflow 可靠。
- R Consortium Submissions Working Group — 用 R 向 FDA 递交分析的工作组,Pilot 1–5 的完整记录就是"R 能否过监管"这一问题的权威答案。递交相关的方法学争论,最终都会回到这里的文档。
- useR! 会议(useR! 2024 起每年举办) — R 社区的全球旗舰年会,虽非制药专属,但临床统计专场(clinrep 等议题)与 keynote 能帮你跳出行业视角看 R 整体演进。适合每年挑回放看两三场。
测验:想跟踪中国制药 R 用户组的活动与中文分享,应关注哪个社区?
8.2 会议论文精读清单
下面 8 篇是"从 SAS 转身到 R"这条主线上最值得逐字精读的材料:前 5 篇来自 PharmaSUG 2026,后 3 篇是圆桌记录与企业案例。建议按表内顺序读——先立信心(转型全景),再学桥接(工作流),最后补验证与 AI 视角。
| 论文 / 材料 | 出处 | 一句话理由 | 链接 |
|---|---|---|---|
| Goodbye SAS, Hello R: Practical Workflows for CDISC(ET-279) | PharmaSUG 2026 | 从 SAS 老兵视角完整走一遍 R 的 CDISC 全流程,是本书第 2 章的"行业原版"。 | |
| SAS-to-R 实用工作流(ET-179) | PharmaSUG 2026 | 把 SAS↔R 概念映射落到日常程序层面,与第 0 章 0.5 映射表互为印证。 | |
| R 包验证框架(ET-140) | PharmaSUG 2026 | GxP 语境下验证"包 + 测试 + 锁环境"的完整框架,第 5 章 5.8 节的底稿。 | |
| SAS to R: A Practical Bridge(TT-156) | PharmaSUG 2026 | 入门友好的"桥"文:不劝你立刻告别 SAS,而是教你两边并行的过渡姿势。 | |
| 中间设计文档法(AI-305) | PharmaSUG 2026 | 用"中间设计文档"约束 AI 辅助编程的输出,让生成的 R 代码可审、可验证。 | |
| AI 圆桌记录(2024) | R/Pharma Summit 2024 | 行业首批关于"AI 会怎样改变统计编程岗位"的公开讨论,观点原始、信息量大。 | 笔记 |
| AI 圆桌记录(2025) | R/Pharma Summit 2025 | 与 2024 场对照读,一年之间共识与分歧如何演变,本身就是趋势报告。 | 笔记 |
| J&J 混合递交案例:A Hybrid R/SAS Strategy for FDA Submission | R Consortium | 真实获批案例复盘:"SAS 做 ADaM + R 做 TFL"的混合策略如何过 FDA,团队迁移的最强论据。 | 文章 |
8.3 与本地精读资产的衔接
本书是"教程",你机器上另有两份"文献库",三者分工不同、互相引用:
../PharmaSUG2026-Analysis/00-总览与导读.md— 对 PharmaSUG 2026 约 250 篇论文的分 track 导读:每篇一句话定位 + 深读编号。当你在本书某章想"再往下挖一层"时,去这里按 track 找论文。../PharmaR/Pharma开源社区近2年文章精读与AI影响分析.md— 对 pharmaverse 生态近 2 年主线文章的精读与 AI 影响分析:讲"生态怎么演化、AI 怎么介入",是理解行业叙事(而非单点技术)的那条线。
使用方法很简单:本书章负责"学会做",导读文档负责"知道去哪找",精读文档负责"看懂大势"。下表给出章与两份文档的映射(track 名与深读编号以导读文档实际目录为准):
| 本书章 | PharmaSUG2026 导读(track / 深读编号) | PharmaR 精读文档(主线) |
|---|---|---|
| ch0–ch1 环境与语言 | 00-总览与导读(先读方法论部分) | §生态概览:pharmaverse 是什么 |
| ch2 CDISC 数据 | 03-DS track;深读 3/4(对应 ET-279、ET-179) | admiral 家族演进主线 |
| ch3 统计分析 | 05-ST track;深读 6(生存与 MMRM 相关) | tern / 统计报告主线 |
| ch4 TLF 报告 | 07-TT track;深读 8(对应 TT-156) | rtables / quarto 报告主线 |
| ch5 工程化与验证 | 09-QC track;深读 5(对应 ET-140) | 验证与合规(valtools)主线 |
| ch6 包开发 | 02-AD track(工具化案例) | pharmaverse 包开发协作模式 |
| ch7 Shiny | 08-RB track(交互应用) | teal / Shiny 生态主线 |
| ch8 社区与职业(本章) | 01-AI track;深读 1/2(对应 AI-305 与两场 AI 圆桌) | AI 影响分析章节(岗位与工作流重塑) |
8.4 90 天计划:细化到周
首页 90 天路径给了四个阶段的粗颗粒版本;下表把它拆成 12 周,每周一个可检查的产出。原则:每周产出必须"拿得出手"(脚本、图表、包、文档),而不是"我看完了第 X 章"。
| 周 | 目标 | 产出 | 对应章 / 案例 |
|---|---|---|---|
| 1 | 环境搭建:R + renv + CRAN 镜像 | 一个可 restore 的 renv 项目骨架;sessionInfo 留档 | ch0 |
| 2 | 语言基础:向量、factor、NA、三大范式 | 跑通 ch1 全部示例;自己的 SAS↔R 对照笔记(在 0.5 表上加行) | ch1 |
| 3 | CDISC 上:SDTM 语义与 admiral 派生 | 用 admiral 手工派生一份 ADSL 子集并通过 diffdf 自查 | ch2 |
| 4 | CDISC 下:全链路贯通 | 独立完成 C1(SDTM→ADaM→Table 1)并写 QC 比对脚本 | ch2 / C1 |
| 5 | 统计上:检验、回归与统计表格 | 把一份熟悉的 SAP 主要分析用 R 重写并核对结果 | ch3 |
| 6 | 统计下:生存分析 | 复现 C2 全部 KM 图与 risk table | ch3 / C2 |
| 7 | TLF:rtables + Quarto 报告 | 产出一套报告级 TFL(RTF/PDF 双格式) | ch4 |
| 8 | 工程化:testthat + CI + valtools | 给 C1 的脚本补 testthat 测试并跑通一次本地 CI | ch5 / C1 |
| 9 | 包开发:把自己的函数变成包 | C1 推导函数包化,带 roxygen 文档与 pkgdown 站点 | ch6 / C1 |
| 10 | Shiny 与三个数据案例 | 跑通 C3–C5,并给每个案例加一个自定分析 | ch7 / C3–C5 |
| 11 | teal 探索器 + 开始精读 | 部署 C6;按 8.2 清单精读第 1 篇(ET-279)并写摘要 | ch8 / C6 |
| 12 | 复盘与职业输出 | 再精读 2 篇(TT-156、J&J 案例)写摘要;完成 90 天复盘 + 个人/团队迁移计划一页纸 | ch8 |
8.5 团队迁移策略:混合模式起步
个人转型靠自律,团队转型靠策略。目前最被验证的路径是 J&J 混合模式:ADaM 数据集继续用成熟 SAS 流程生产,TLF 报告端切换到 R(rtables + Quarto),以 R 包 + renv.lock 形式随 eCTD 递交。它的聪明之处在于:数据端风险最高的部分不动,先在"输出层"这个容易双编程核对的环节建立 R 的信任。
选择试点项目时,用三原则筛选,三条同时满足才动手:
- 数据量小 — 选 I 期试验、单研究 Table 1 或列表(listings)这类"错了也能当天发现"的交付物。
- 时间裕度 — 不在关键递交路径上;有并行 SAS 版本兜底,R 版做双编程比对。
- 有 R 同伴 — 至少两人组队(一人写、一人审),避免"全团队只有一个人会 R"的单点风险。
试点跑通后,把第 5 章的验证清单升格为团队 SOP:valtools 验证计划模板、testthat 断言库、diffdf 双编程比对流程、renv.lock 递交附录规范——这些资产在后续每个项目里直接复用,迁移成本逐项目递减。
8.6 职业路径:角色演进与面试准备
SAS Programmer 转 R 不是换工具,而是换角色定位。典型的演进分三个阶段:
| 阶段 | 角色 | 你负责什么 | 本书对应 |
|---|---|---|---|
| 1. 写代码 | R Statistical Programmer | 把既有 TFL/ADaM 需求用 R 实现并通过 QC;产出可靠脚本 | ch1–ch4 + C1/C2 |
| 2. 审代码 / 管流程 | QC Lead / Workflow Owner | 制定双编程与比对标准、维护测试与 CI 门禁、审核他人代码与验证证据 | ch5 + C1 的 QC 链路 |
| 3. 方案架构 | Programming Architect | 设计混合 SAS+R 递交策略、内部包与平台选型、团队能力路线图 | ch6–ch8 + 本章 8.5 |
面试(或内部转岗答辩)时,下面 12 个知识点几乎必被问到其中若干个。每条都建议准备一个"我亲手做过"的例子,而不只是概念复述:
- CDISC in R — 用 admiral 派生 SDTM/ADaM 的策略,与 SAS 宏库做法的异同(第 2 章)。
- admiral 生态 — admiral 与领域扩展包(admiralonco 等)的结构、pharmaverse 模板(admiral templates)用法。
- rtables — 分析型表格的 split/format 模型,与 ODS RTF 或 gtsummary 的取舍(第 4 章)。
- 验证 — GxP 语境下 R 的验证证据链:valtools、testthat、V 模型到"包 + 测试 + 锁环境"的平移(第 5 章)。
- renv — lock/snapshot/restore 工作流,renv.lock 在递交附录中的角色(第 0 章)。
- CI — GitHub Actions/GitLab CI 上跑 R CMD check 与 testthat 的经验,"全绿"作为放行门禁。
- 生存分析 — survival/survminer:KM 曲线、log-rank 检验、Cox 模型与 risk table 的生产级做法(第 3 章 / C2)。
- MMRM — 混合效应重复测量模型在 R 中的实现(mmrm/lme4 + emmeans)与 SAS PROC MIXED 结果的对齐。
- 双编程 — 独立双编程在 R 下的落地:diffdf/arsenal 比对、比对脚本自身的 QC。
- Shiny 验证 — 交互应用在 GxP 边界内外的定位,shinyvalidate 与 teal 模块化框架(第 7 章 / C6)。
- 包开发 — usethis/devtools/roxygen2/pkgdown 全流程,内部包仓库与版本策略(第 6 章)。
- 社区参与 — 给 pharmaverse 仓库提过 issue/PR、在 PharmaSUG/useR!/China PharmaRUG 做过分享或投稿——这条是区分"会 R"与"在 R 生态里"的关键。
章末资源
- R/Pharma Summit — 制药 R 年度会议,Summit 圆桌笔记免费公开 参考
- China PharmaRUG — 中国制药 R 用户组,中文活动与讨论的第一入口 入门
- pharmaverse blog — admiral/tern/teal 官方博客,"官方推荐做法"的出处 入门
- PharmaSUG 2026 ET-279 Goodbye SAS, Hello R — R 的 CDISC 全流程实战,精读清单第一篇 进阶
- R Consortium Submissions WG — R 递交 FDA 的 Pilot 记录与方法学文档 进阶
- J&J 混合递交案例 — 团队迁移策略(8.5)的事实依据 参考
本章练习
- (易)加入 pharmaverse Slack 工作区,并订阅 China PharmaRUG 的邮件/活动渠道;本周内在任一频道做一次自我介绍。
- (中)精读 ET-279,写 300 字中文摘要:作者的迁移路径、用到的核心包、你认为最值得团队借鉴的一个做法。
- (难)在团队内做一次 30 分钟 R 分享(题目自选,如"我用 admiral 重写了 Table 1"),留存 slides 与示例代码仓库链接——这就是 8.6 第 12 条面试素材的第一件。
全书到此结束。地图已经摊开:社区在哪、论文读哪几篇、12 周怎么走、团队怎么迁、职业往哪去。剩下的事情只有一件——从第 1 周的那个 renv 项目开始,把它做完。