SuperAPI AI 工具集

r-style-guide

编程与开发

查看项目

更新于 10-15 08:14

技能介绍

用途

本技能是一份 R 语言代码风格指南与函数编写最佳实践,用于在编写 R 代码时保持一致的命名、空格、结构、排版与函数设计。

主要能力

命名规范

  • 所有名称使用 snake_case。
  • 变量名用名词,函数名用动词。
  • 除 S3 方法外避免使用点号。
  • 示例:day_one、calculate_mean、user_data;避免 DayOne、calculate.mean、userData。

空格与排版

  • 运算符两侧加空格:x <- 1 + 2。
  • 索引与参数示例:x[, 1]、mean(x, na.rm = TRUE)。
  • 管道格式化:data |> filter(...) |> group_by(...) |> summarise(...),每步换行。
  • 赋值使用 <-,= 仅用于函数参数。

缩进与行长

  • 使用 2 个空格缩进,不使用制表符。
  • 行长尽量不超过 80 字符。
  • 长函数调用每个参数单独一行;长管道链每步单独一行。

注释

  • 注释解释“为什么”而非“是什么”。
  • 避免仅重复代码的注释。

文件组织

按以下顺序组织文件:

  1. 顶部加载包(如 library(dplyr))。
  2. source 辅助文件(如 source("R/helpers.R"))。
  3. 定义常量(如 MAX_ITERATIONS <- 1000)。
  4. 定义函数。
  5. 主脚本逻辑(非包项目)。

函数设计

  • 单一职责:每个函数只做一件事,例如 read_and_validate() 与 validate_columns() 分离。
  • 返回值:复杂函数使用显式 return(),简单函数可用隐式返回;避免无理由的中途返回,允许提前退出。
  • 类型稳定输出:使用 map_dbl()、map_chr()、map_lgl() 等保证返回类型一致。
  • 默认参数:设置合理默认值,可选参数可用 NULL 默认。
  • 错误处理:优先使用 cli::cli_abort() 替代 stop(),消息结构为问题陈述加上下文要点。

cli 内联标记

  • {.arg x}:参数名。
  • {.fn foo}:函数名。
  • {.cls {class(x)}}:类名。
  • {.val {value}}:字面值。
  • {?s}:复数化。

tidyverse API 约定

  • 数据优先参数:数据作为第一个参数以便管道使用。
  • 非标准参数加 . 前缀以避免冲突,如 .data、.by。
  • 一致返回类型:例如始终返回 tibble。

常见风格错误

  • 避免不一致空格、多余括号、使用 T/F 代替 TRUE/FALSE、用分号分隔语句、使用 attach()。

使用方式

在编写 R 代码时参照本指南的规则与示例,统一命名、排版、注释、文件结构与函数设计。资料未提供具体的安装命令或调用方式。

适用场景

适用于编写 R 代码、进行代码审查或建立团队 R 代码规范时参考。

限制

资料未提供该技能的安装方式、运行环境要求、收费信息或平台支持情况。