R扩展包的写作规范 1

这一规范并不是硬性要求,但是可以帮助我们写出方便和他人交流的代码。

使用命名空间namespaces

除了R的基础包(Base packages)中的函数,其它函数在调用时最好加上命名空间,以方便阅读。

  1. 如果需要调用包中的私有函数,需要写成mypackage:::.somePrivateFunc()的形式。最初,人们习惯私有函数的写法是以.起始的匈牙利命名法的函数名。但是新的R书写规范正在逐步取消命名中含有.的做法,因为这样使用得函数名做为参数传递时会产生不便。
  2. 如果调用其它包中的函数,需要写成otherpackage::aFunc()的形式。但是需要注意的是,所有需要Imports的其它包必须在DESCRIPTION文件中声明,否则在包的编译过程中不会预载相应的包,这会造成软件包的可移植性差。

退格与列

  • 使用4个空格来替换tab
  • 每一行不超过80个字符

变量名

  • 使用匈牙利命名法:以一个或者多个小写字母起始,接着首字母大写的单词缩写,中间不使用除字母与数字以外的其它字符。

函数名

  • 使用匈牙利命名法:以一个或者多个小写字母起始,接着首字母大写的单词缩写,中间不使用除字母与数字以外的其它字符。
  • 避免使用.,比如some.func

合理使用空格

  • 在逗号后一定使用空格。比如a, b, c。而不应该是a,b,c。这样做有利于系统自动换行。
  • 在函数传递参数时等号(=)左右不使用空格。比如someFunc(a=1, b=2),而不应该是someFunc(a = 1, b = 2)
  • 在逻辑运算符左右使用空格,比如a == b。
  • 在赋值运算符左右使用空格,比如a <- 2

注释

  • 使用连续两个##开始注释
  • 注释需要和代码的退格保持一致

其它

  • 使用<-而不是=做为赋值符号

参见:Bioconductor coding style, package Guidelines

One comment on “R扩展包的写作规范

  1. Pingback: 使用RStudio结合devtools开发bioconductor扩展包 ← 糗世界

Leave a Reply

  

  

  

%d 博主赞过: