📘
💬 R代码阅读与注释 (Code Annotation)
阅读他人的R代码时,让AI为每个重要步骤添加详细注释,帮助你快速理解代码逻辑和数据流向。
📝 代码注释提示词
基础版:仅添加注释
Prompt:
不要改动代码内容,仅添加注释。
要求:
- 语言:中英文混合
- 帮我解释每个重要步骤的具体含义
- 生成一份新的R脚本供我下载
[粘贴你的R代码]
详细版:逐行解释
Prompt:
请为以下R代码添加详细的中文注释:
1. 在每行关键代码后添加注释,说明其作用
2. 对于复杂的数据处理步骤,添加多行注释解释逻辑
3. 标注关键函数的参数含义
4. 指出可能的错误点和注意事项
5. 不要改动原有代码,只添加注释
[粘贴你的R代码]
教学版:适合初学者
Prompt:
我是一名R语言初学者,请帮我为以下代码添加教学级注释:
1. 用通俗的语言解释每一步在做什么
2. 说明为什么需要这个步骤
3. 指出这段代码实现了什么功能
4. 标注重要的R语言概念和语法
[粘贴你的R代码]
💡 适合刚开始学习R语言的医学生
📋 注释最佳实践
好的注释 vs 坏的注释
❌ 坏的注释
# 读取数据
data <- read.csv("file.csv")
# 过滤
data2 <- filter(data, age > 18)
# 画图
plot(data$x, data$y)
问题:只是重复代码本身,没有提供额外信息
✅ 好的注释
# 读取原始临床数据,包含基线特征和随访结果
data <- read.csv("./input/clinical_data.csv")
# 筛选成年患者(年龄>18岁),排除儿科数据
data2 <- dplyr::filter(data, age > 18)
# 绘制收缩压与舒张压的散点图,观察线性关系
plot(data$sys_bp, data$dia_bp,
xlab = "收缩压 (mmHg)",
ylab = "舒张压 (mmHg)")
优点:说明了为什么这样做,而不仅仅是做什么
🎯 不同场景的注释策略
1. 数据导入
# 从MIMIC数据库导入ICU患者数据
# 数据源:./input/mimic_icu.csv
# 包含变量:patient_id, age, gender, los_mortality
mimic_data <- read.csv("./input/mimic_icu.csv",
header = TRUE,
na.strings = c("", "NA", "NULL"))
2. 数据清洗
# 删除年龄缺失或异常值(<0 或 >120)的记录
clean_data <- mimic_data %>%
dplyr::filter(!is.na(age) & age > 0 & age <= 120)
# 将性别转换为因子变量(便于后续建模)
clean_data$gender <- factor(clean_data$gender,
levels = c("M", "F"),
labels = c("Male", "Female"))
3. 统计分析
# Cox比例风险模型:评估年龄对ICU死亡风险的影响
# 调整变量:性别、入院类型、合并症数量
cox_model <- survival::coxph(
Surv(time_to_death, death_status) ~ age + gender + admission_type + comorbidity_count,
data = clean_data
)
# 提取HR值和95%置信区间
hr_summary <- broom::tidy(cox_model, exponentiate = TRUE,
conf.int = TRUE)
4. 数据可视化
# KM生存曲线:按年龄分组(<65 vs ≥65岁)
surv_fit <- survival::survfit(
Surv(time_to_death, death_status) ~ age_group,
data = clean_data
)
# 绘制KM曲线,添加风险表格和置信区间
ggsurvplot(surv_fit,
data = clean_data,
pval = TRUE, # 显示log-rank检验P值
conf.int = TRUE, # 显示95%置信区间
risk.table = TRUE, # 显示风险表格
xlab = "时间(天)",
ylab = "生存概率")
💡 注释技巧
- 解释"为什么"而非"做什么":代码本身说明做了什么,注释解释为什么这样做
- 标注假设和前提:如"假设数据已按日期排序"、"要求患者年龄≥18岁"
- 记录重要的决策:如"选择Wilcoxon检验而非t检验,因为数据非正态分布"
- 添加警告和注意事项:如"注意:此函数会移除缺失值"
- 使用一致的注释风格:团队内部统一注释格式