# R Biostats

> R 流行病学与生物统计的主要执行层，用于 R 数据清洗、描述统计、回归、生存、中介、Meta 分析、统计表图和代码调试；用户未指定且项目没有既定分析语言时也使用。开工先遵循 biostat-principles；统计图配合 publication-figures，客户外发再用 consulting-delivery。不用于已明确采用 Python 的分析、研究设计定稿或论文写作。

- Skill: `kangwang42/r-biostats` (Agent Skill, multi-file: 11 files)
- Install (CLI): `npx skillmds@latest add kangwang42/r-biostats`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kangwang42/r-biostats/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: kangwang42 (https://skillmd.com/u/kangwang42)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kangwang42/r-biostats

---


# R 生物统计执行

本 skill 把已经确认的研究问题转成最小、可运行、可核验的 R 分析。

## 1. 输入与方法

1. 读取本轮必要输入；项目执行或正式发布时，再读取项目 `CLAUDE.md`、PROTOCOL、SAP、配置、方法决定与尚未解决且需要后续处理的事项。
2. 确认分析集、暴露或干预、终点、比较、时间零点、协变量和主要方法。多个合理口径会改变答案时先确认。
3. 多个产物共享变量但口径不同时，在当前计划或项目既有状态文件中列出每项产物的分析数据、缺失处理、关键方法参数和样本量呈现；用户纠正后先更新这份当前口径，再修改受影响代码。不得把一个产物的插补、完整病例或检验选择外推到另一个产物，也不为已有明确口径另建清单文件。
4. 从最早输入核对字段、类型、键、重复、缺失、范围和逐步样本量。
5. 方法必须匹配 estimand、研究设计、结局类型、时间结构和抽样设计，不按包的便利性替代研究问题。

按本轮实际方法读取对应参考。只要新增、修改或重构 R 代码，必须先读 [代码风格](references/code-style.md)，在编写过程中按其组织主线，并在运行前检查受影响脚本；这不是可跳过的格式建议。需要选择或替换 R 包、准备编写新的辅助函数，或发现同类实现重复时，必须先读 [包选择与复用](references/package-selection.md)。其他方法参考只在相应分析适用时读取：

- 描述统计：[references/descriptive.md](references/descriptive.md)
- 回归与诊断：[references/regression.md](references/regression.md)
- 生存分析：[references/survival.md](references/survival.md)
- 中介分析：[references/mediation.md](references/mediation.md)
- Meta 分析：[references/meta.md](references/meta.md)
- 预测模型：[references/prognostic-models.md](references/prognostic-models.md)

统计图转 `publication-figures`；其通用绘图实现说明见 [references/visualization.md](references/visualization.md)，但正式投稿格式以目标期刊当前官方要求为准。

## 2. 实现与运行

- 沿用能够满足当前方法与输出要求的现有包、对象命名和脚本结构；需要新增实现时先核对成熟包的官方接口和当前项目版本。已有包能完整表达已确认口径时直接使用，只为路径、标签、格式或跨包衔接保留短小适配层，不重写包已经稳定提供的统计、整理或导出能力。
- 编写时保持分析主线、分节、函数边界和输出行为清楚。文件与参数预检集中在总运行入口，稳定科学不变量留在最接近风险的位置，本次运行与显示核验放入相应检查步骤；不要让普通分析或表图脚本被重复输入检查、逐项结果互证及嵌套失败分支主导。
- 项目没有相反的既有规范时，以 tidyverse 作为正式研究代码的整体默认表达方式：连续数据变换优先管道，批处理优先 `purrr`，字符串、分类和读写分别优先使用相应 tidyverse 包。仅在底层工具、性能瓶颈、包接口或基础 R 明显更清楚时局部采用其它写法，并保持同一分析主线一致；不得在一次分析中无理由改成大量循环、标量 `if/else`、`data.table` 或基础 R 拼装。
- 发现跨脚本重复工具、无意义控制台输出或把长篇论文正文写成 R 字符向量时，在本次受影响范围内按 `code-style.md` 收束后再运行。
- 原始数据只读，处理后数据写入项目规定的结果目录。
- 只有随机抽样、模拟、重采样、数据拆分或随机算法固定并记录种子。
- 普通 R 包缺失时按 `biostat-principles` 的依赖政策在项目隔离环境补齐；失败不得静默换包、换方法或改用 Python。
- 多行代码写入 `.R` 文件。局部任务直接运行目标脚本；项目执行和正式发布通过 `run_pipeline.R` 从项目根启动新的 `Rscript --vanilla` 进程，并按明确清单和已确认顺序运行正式分析脚本。论文装配、长期检查和本次验收按各自职责单独运行，不因编号或可被调用而混入分析入口。
- 非机械修改 `.R` 后，先在新 R 进程执行 `parse(file = "<受影响脚本>")`，通过后再运行受影响的最小入口或总运行脚本。语法通过只是一道即时门禁，不能替代实跑、样本量、估计、诊断和输出检查。
- 核对完整输出、样本量链、缺失、估计范围、区间、收敛、适用的模型假设和预期文件；warning、error、failed、nan 不得略过。

发现方向反转、无穷估计、异常缺失或样本量跳变时回到最早来源。可能改变口径或结论时停下报告，不通过删记录或改模型掩盖。

## 3. 结果及其使用文件

项目执行和正式发布的关键结果使用 [scripts/emit_summary.R](scripts/emit_summary.R) 写入 `results/results.yaml`。调用 `add_result()` 时必须填写实际生成结果的脚本、脚本中提取结果的对象、输入文件或其哈希值、分析集、运行编号，以及实际使用该结果的文件；禁止直接修改 YAML。文件结构和旧项目读取方式见 [结果数据文件](../biostat-principles/references/result-summary-schema.md)。

表格、图件、论文、报告和 PPT 按每项结果的固定名称从 `results/results.yaml` 取数。结果改变时应重新运行实际生成结果的脚本，并同步更新所有使用该结果的文件。方法选择或方案偏离写入 `DECISIONS.md`；总运行脚本自动记录实际命令、状态、输入输出文件哈希值和环境信息。只有需要后续补充材料、外部资源或由用户决定的事项才写入 `BACKLOG.md`。

试新方法按 `biostat-principles` 的 E0/E1/E2 分级隔离；未达到预设条件或未经必要确认的方案不得覆盖主流程。

## 4. 完成条件

- 原始数据未改，声明脚本已实跑且状态成功。
- 输入行数、分析集分母、缺失与排除链可核对。
- 估计、区间、诊断和不确定性与研究目标匹配；异常已修复或明确解释。
- 新增或修改的 R 代码已按 `code-style.md` 完成可读性检查；tidyverse 默认表达、研究对象式命名、分析主线、分节、函数边界、检查位置、重复工具、目录职责和运行输出均有可核对结论。涉及新包或自定义实现时，已按 `package-selection.md` 核对方法覆盖、版本接口、返回对象、依赖、警告和回退条件。仅有语法通过或全链成功不能替代这项检查，包选择检查也同样不能省略。
- 项目执行和正式发布时，`results/results.yaml`、自动运行记录、方法决定和实际使用结果的文件保持一致。
- 局部任务只交付已经确认的产物和必要的复现说明，不补建范围外记录。

