# 数据预处理R语言

> 完备严谨的统计学数据预处理流程（默认 R 语言，无 R 时可降级为"生成可本地运行脚本"或 Python 分支）。支持两种模式：完整全流程（10 步）或轻量局部模式（只执行用户指定的若干步骤）。10 步：分布探查→描述统计与交叉表→数据清洗(缺失/异常/一致性)→数据变换(防泄漏)→变量编码与重赋值→衍生变量与分组分层→平稳性检验(非时序跳过)→多重共线性与降维→数据集划分→结果验证。每步输出代码、配图、UTF-8 with BOM CSV；阈值(VIF>10、|偏度|>1)为默认值、可由用户覆盖；关键决策点（异常取舍、缺失填补方案）会暂停与用户确认。本技能是底层业务工具，可由 math-modeling 内部按需加载；仅做局部清洗/编码等单步处理或明确要求 Python 时按轻量模式执行，避免与 math-modeling 同时顶层触发两套流程。

- Skill: `jschen-biostat/r` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add jschen-biostat/r`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jschen-biostat/r/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: jsChen-biostat (https://skillmd.com/u/jschen-biostat)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/jschen-biostat/r

---


# 数据预处理（R 语言）Skill

## 模式分支（先判断模式，再执行）

1. **全流程模式（FULL）**：系统性预处理 + EDA + 论文预处理章节（建模竞赛、统计毕设）→ 执行全部 10 步。
2. **轻量模式（LOCAL）**：用户只做局部任务（仅清洗缺失 / 仅变量编码 / 仅降维 / 仅划分…）→ 只执行指定步骤，不强制完整流水线、不生成全套交付物；交付物开头声明"已按轻量模式仅执行第 N 步：……"。
3. **脚本交付模式（SCRIPT_ONLY）**：运行环境无 R（或用户不想在本环境运行）→ 生成完整可本地运行的 R 脚本 + 运行说明，不在 Agent 内强行执行；明确声明"未在本环境运行，请本地运行后回传结果"。
4. **Python 分支**：用户明确要求 Python → 同一 10 步骨架改用 pandas/sklearn，交付物注明"Python 实现"。

> 默认 FULL。用户语言含"只/仅/简单/先处理一下/帮我清洗/帮我编码"等局部意图时自动切 LOCAL，不询问、不暂停。
> **与 math-modeling 的关系**：本技能是底层业务工具。math-modeling 收到完整建模任务时由它内部按需加载本技能；用户在完整建模流程之外单独要数据预处理时才由本技能直接触发。二者不要同时顶层激活（避免两套工作流打架）。

## 10 步大纲

1. 数据分布情况（直方图、箱线图等）
2. 描述性统计与交叉表
3. 数据清洗（缺失值、异常值、一致性）
4. 数据变换（按需，防泄漏）
5. 变量编码与重赋值（重命名）
6. 构造衍生变量与分组分层
7. 平稳性检验与时间序列预处理（非时序可跳过，须说明）
8. 多重共线性检验及降维
9. 数据集划分（如需）
10. 验证处理结果

> 每步完整细节（目标/必做动作/R 代码要点/配图/表格/场景依据/验收/决策点）见 `references/preprocess-detail.md`——**开始执行前必须实际读取该文件**，不得凭记忆执行。

## 交付契约

1. `scripts/data_preprocess_full.R` —— 以 `scripts/preprocess_template.R` 模板为基础定制的完整可运行脚本，每步分区 + 中文注释；轻量模式只含执行步骤。
2. `数据预处理_R代码全流程.md` —— 按步分节粘贴代码（每节前写"本步目标与场景依据"一行）。
3. `数据预处理_图解读与论文写法.md` —— 全部图片逐一解读（图号/文件名/标题/核心结论/关键数值）+ "可直接放入论文的数据预处理章节"（数字必须与运行结果一致）。
4. `results/数据预处理结果/*.csv` —— 全部 UTF-8 with BOM，禁止乱码。
5. `figures/数据预处理/` —— 每步至少 1 图，PNG 300 dpi + SVG。
6. 轻量模式按实际执行步骤缩减交付物，每项产物与执行步骤一一对应，不得凭空多出未执行步骤的产物。

## 顶层硬规则

1. 输入文件只读；全部产物写入 PROJECT_ROOT，禁止覆盖输入。
2. 路径配置：任何需用户按本机情况配置的路径必须用 `# ===== 用户可配置区 =====` 标注，并给出默认自动探测逻辑（不依赖手填路径也能跑）。
3. 图片：统一出版级样式（theme_bw + 中文字体、网格弱化、标题居中加粗、图例规范）；每图含"图号+标题+前/后对比（适用时）"；禁止默认灰底、禁止乱码。
4. 每一步必须写明选用方法的**场景依据**；"按需/可选/跳过"必须给出明确理由，不能省略不解释。
5. **防泄漏红线**：变换参数、标准化、PCA、插补模型一律"训练集拟合、验证/测试集映射"，代码注释明示。
6. **阈值默认可覆盖**：VIF>10、|偏度|>1、IQR×1.5、MAD×3 等均为默认值；不同领域可覆盖，交付物写明"默认阈值 + 实际采用值 + 覆盖理由"。
7. **交互停顿**：关键决策点（缺失填补方案、异常删除/保留、是否降维、划分方式）必须暂停并询问用户确认；无法交互时明确记录假设与决策依据，交付时列为"待用户确认项"。
8. **环境降级**：无 R → 脚本交付模式或 Python 分支，不得静默改用其他语言冒充已运行；缺包给出安装命令。
9. 完成前逐项核对自检清单（见 `references/preprocess-detail.md` 末节），并如实报告核对结果。

## 渐进加载指引

- 触发后只读本文件与 `references/preprocess-detail.md`（执行流程细节）；
- 写脚本时先读取 `scripts/preprocess_template.R` 模板再定制，禁止每次从零生成大段 R 代码；
- 其余参考资料按需读取，不要一次性加载。

