R项目结构

R项目结构的详细提示词和使用说明

AI提示词 实用工具 效率提升
📘

📋 R代码编写规范 (Best Practices)

🎯 最实用 代码规范 最佳实践 团队协作

以下是一套完整的R代码编写标准,帮助你生成规范、可维护、可复现的R代码。将这些规范发送给AI,生成的代码将符合医学研究的最佳实践。

🚀 完整提示词

📖 规范详解

1️⃣ 路径管理规范

原则:使用相对路径,便于项目移植

# ✅ 推荐
data <- read.csv("./input/raw_data.csv")
write.csv(result, "./output/result_20260208.csv")

# ❌ 避免
data <- read.csv("/Users/username/Documents/project/data.csv")

💡 使用 `here` 包或 `file.path()` 函数可以更好地处理跨平台路径问题

2️⃣ 包引用规范

问题:不同包可能有同名函数(如 `filter()` 在 dplyr 和 stats 中都存在)

# ✅ 推荐:明确指定包
dplyr::filter(data, age > 18)
stats::filter(data, lowpass)

# ❌ 可能报错
filter(data, age > 18)  # 如果未加载 dplyr,会调用 stats::filter()

💡 使用 `包名::函数名()` 可以避免函数冲突,提高代码可读性

3️⃣ 文件命名规范

原则:文件名包含日期,便于版本管理

# ✅ 推荐格式
time_today <- format(Sys.Date(), "%Y%m%d")  # 20260208
filename <- paste0("./output/", time_today, "_analysis_result.xlsx")

# 输出示例:./output/20260208_analysis_result.xlsx

4️⃣ 循环使用规范

优势:`foreach` 比 `for` 更灵活,支持并行计算

library(foreach)

# ✅ 推荐:带进度提示
results <- foreach(
  i = 1:100,
  .errorhandling = "pass"  # 遇到错误继续执行
) %do% {
  message(paste("正在处理第", i, "个样本..."))
  # 你的分析代码
  result
}

# ❌ 避免:无进度提示
for (i in 1:100) {
  # 你的分析代码
}

💡 `.errorhandling = "pass"` 确保某个元素出错不会中断整个循环

5️⃣ 列名规范

原则:避免空格和句点,使用下划线

# ✅ 推荐
baseline_age
systolic_bp
diagnosis_time

# ❌ 避免
baseline age      # 有空格
baseline.age      # 有句点(在某些情况下会被误解析)
baseline-age      # 有连字符

💡 使用下划线是最安全的选择,R中所有操作都支持

6️⃣ P值格式规范

标准:P < 0.001 显示为 "<0.001"

# ✅ 推荐格式化函数
format_pvalue <- function(p) {
  ifelse(p < 0.001, "<0.001", sprintf("%.3f", p))
}

# 使用
result$p_formatted <- format_pvalue(result$p_value)

# 输出示例:
# 0.123 → "0.123"
# 0.0005 → "<0.001"

7️⃣ 置信区间格式

标准格式:系数 (95% CI: 下限 to 上限)

# ✅ 推荐格式化
ci_formatted <- sprintf(
  "%.2f (%.2f to %.2f)",
  result_row$Estimate,
  result_row$CI_Lower,
  result_row$CI_Upper
)

# 输出示例:1.23 (0.98 to 1.48)

💡 最佳实践建议

1. 项目结构标准化

project_name/
├── R/               # R脚本
├── data/
│   ├── raw/        # 原始数据(只读)
│   └── processed/  # 处理后数据
├── output/         # 结果输出
├── figures/        # 图表
└── README.md       # 项目说明

2. 使用 RStudio 项目

创建 `.Rproj` 文件,自动设置工作目录,避免路径问题

3. 版本控制

使用 Git 跟踪代码变更,便于回溯和协作

4. 代码复现性

设置随机种子 `set.seed(123)`,确保结果可复现