0%

R语言代码规范

The tidyverse style guide by Hadley Wickham.
一些要点。

要写出简洁优美,易读可复用的代码,关键的一点是代码的格式要易读并且一致。这里总结了R语言一些要点。
主要参考:The tidyverse style guide

一、单个分析文件

1. 文件命名

  • 文件名命名:字母,数字以及下划线。名称应具有明显的意义,能表明文件内部代码的作用。并且以.R结尾。
  • 文件应该具有顺序,可以在开头加上数字来对其排序。
    1
    2
    3
    4
    5
    6
    # Good
    00_download.R
    01_explore.R
    ...
    09_model.R
    10_visualize.R
  • 单个文件内部用注释一整行短横线的方式对代码分块。

2. 代码语法

2.1 对象命名
  • 对象名应该全小写,下划线连接。最好不要出现.,把object.name这种命名方式预留给内置的S3系统。避免造成歧义。
  • 变量名应该为名字短语,函数名为动词短语。
2.2 空格
  • 逗号前不加空格,逗号后面加空格。
  • 单目运算符不加空格,双目运算符两侧加空格。
  • 关于空格的使用有非常多的细节问题,这里不再一一展开。
2.3 长代码行
  • 若是参数过多导致单行太长,可将每个参数单独放在一行。
2.4 赋值
  • 使用<-,而避免使用=赋值。等号只用于调用函数时给参数赋值。
2.5 数据
  • 使用双引号表示字符。
  • 逻辑值应用全称,TRUEFALSE,避免使用TF

3. 函数

  • 命名时应尽量使用动词短语。
  • return的使用:这里有个矛盾的地方,原始文章说应该只在在内部早期需要返回值的时候return,其他的时候依赖R返回。
    但是在最新的Google’s R Style Guide中,建议使用return显式的返回。
    这里我个人觉得显式返回更符合编程的直觉,所以采用第二种。
  • 对函数进行注释时,应该重点关注在解释为什么,而不是是什么和怎么做的,后者是能够通过看代码直接看出来的。
    另外注释应保持句子的格式,并且在单行注释时不加句号,多行注 释时在单个句子的结尾加句号。

4. 管道符

  • %>%dplyr这个包提供的管道符。意思是将符号左边的输出作为符号右边的第一个输入或是剩下的唯一一个输入。
    Google’s R Style Guide是不建议使用这种右向赋值的,理由是这种做法在大多数其他的编程语言中不常见,造成了理解上的偏差。我个人第一次见到这个也比较懵,这种赋值是隐式的,实际上略去了参数的名称和位置信息。只在整个pipes都只有一个输入参数,并且流程较长时比较方便。我目前还没有遇到这种情况,所以自己先避免使用这个符号吧。

5. ggplot

  • ggplot中使用+作为图层的拼接,这里主要是注意+前一定要有空格,另外每个图层单独一行。

二、R包

这部分我自己还没有开始涉及到。后续准备开始写一个R包的时候再补充。