R代码风格

有的人写的程序代码真是漂亮,就像一篇好作文,思路清晰,维护容易,交流方便,读了真是赏心悦目。要是早学过来,不至于遇到一些不必要的麻烦。我觉得编程语言是一门语法和词汇都比较简单的外语,而编写代码就是用这门简单外语把自己的想法写成作文表达和实现出来。

Google有一篇题为“Google的R风格指南”的文章,对于R用户来说提供了了编程习惯方面很好的借鉴。地址是https://google.github.io/styleguide/Rguide.xml。我试图翻译,刚开了个头,觉得自己傻了,怎么能不搜现成的就自己动手呢?果然,搜到了很多翻译版本,比如这个:http://xccds1977.blogspot.co.at/2012/01/google-r.html

重要的挑在下面。其中提到代码的组织问题,我设计了一个起承转合的模板,附在最后。自己以后写代码就往这个模板里套就可以了。越说越像写八股文了。我觉得应该提出一套标准化的方案来。谁知道,也许已经有了呢?

  • 总结:R编程代码风格

1.符号和命名

  • 标识符:variable.name, FunctionName, kConstantName(注意大小写和分隔号)。

2.语法

  • 行长度:不超过 80 个字符。
  • 缩进:用两个空格,不用制表符(我觉得只要同一篇代码用同一种缩进的方式就行了)。
  • 操作符(=, +, -, <-, etc.)左右都要有空格。逗号前不要空格,后面跟一个空格。
  • 括号:圆括号()和方括号[]前后都不要空格。花括号{}前一个用在代码同一行,后一个自己单独一行。
  • 赋值:用箭头 <-,不用等号 =。
  • 分号:不使用。

3.组织

  • 注释: 所有的注释以井号 # 开头,接一个空格;行内注释在 # 前插入两个空格。
  • 函数定义和调用:函数定义在开头应用注释说明该函数的用途,自变量,函数值。

我的R代码模板:


# Script Name:                                            
# Author:                                                 
###### ############## Description
# This script works for....                               
# Input:                                                  
# Processing:                                             
# Output:                                                 
###### ############# Update history
# YYYY-MM-DD, created by .....                            
# YYYY-MM-DD, modified by .....                           
###### ################# Start
rm(list=ls())
# Functions ------------------------------------------------
#
# Settings -------------------------------------------------
wd 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax