R语言编码气势气魄
####文件名称
文件名称该当有意义,而且以 .R 作结。
“`
# Good
fit-models.R
utility-functions.R
# Bad
foo.r
stuff.r
“`
假如是一系列文件,序列号该当在文件之前。
“`
0-download.R
1-parse.R
2-explore.R
“`
####工具名称
变量和方程的名称该当是小写。利用下划线(_)来支解名称内的单词。一般而言,变量的名称该当是名次,而方程的名称该当是动词。定名只管简捷有意义,固然并非易事。
“`
# Good
day_one
day_1
# Bad
first_day_of_the_month
DayOne
dayone
djm1
“`
假如大概,要制止反复定名。不然,令读者不解。
“`
# Bad
T <- FALSE
c <- 10
mean <- function(x) sum(x)
“`
—-
##语法
####空格
在运算符(=, +, -, <-, 等)的双方插手空格。这个法则同样合用于函数内挪用时(=)。始终在逗号后加空格,而之前不加(法则同英文写作)。
“`
# Good
average <- mean(feet / 12 + inches, na.rm = TRUE)
# Bad
average<-mean(feet/12+inches,na.rm=TRUE)
“`
有一处破例,在利用 :: 时。:: 和 ::: 不需要空格在困绕。
“`
# Good
x <- 1:10
base::get
# Bad
x <- 1 : 10
base :: get
“`
除了挪用方程时,在括号的左边加一空格。
“`
# Good
if (debug) do(x)
plot(x, y)
# Bad
if(debug)do(x)
plot (x, y)
“`
假如能使等号或定名(<-)对齐,特另外空格则获得倡导。
“`
list(
total = a + b + c,
mean = (a + b + c) / n
)
“`
不要在括号里的代码周围插手空格。
“`
# Good
if (debug) do(x)
diamonds[5, ]
# Bad
if ( debug ) do(x) # No spaces around debug
x[1,] # Needs a space after the comma
x[1 ,] # Space goes after comma not before
“`
####花括号
永远不要使前花括号单唯一行;除了和 else 毗连,永远使后花括号单唯一行。
永远在花括号内缩进。
“`
# Good
if (y < 0 && debug) {
message("Y is negative")
}
if (y == 0) {
log(x)
} else {
y ^ x
}
# Bad
if (y < 0 && debug)
message("Y is negative")
if (y == 0) {
log(x)
}
else {
y ^ x
}
“`
使很短的语句保存在同一行是答允的。
“`
if (y < 0 && debug) message("Y is negative")
“`
—-
##每行的长度
只管使你的代码节制在每行80个字母。这样使打印出来的代码具有客观性。假如你发明你的代码一行乘不下时,这是个好的信号提醒你把代码压缩到一个独立的方程里。
—-
##缩进
当缩进代码时,利用两个空格;不要利用 tab 或 tab 加 空格。
上面法则的独一破例是,当你在写一个方程时。在这种环境下,缩进到方程开始界说的位置。
“`
long_function_name <- function(a = "a long argument",
b = "another argument",
c = "another long argument") {
# As usual code is indented by two spaces.
}
“`
####赋值
利用 <- , 摒弃 = 。
“`
# Good
x <- 5
# Bad
x = 5
“`
—-
##组织
讲明参考
请讲明你的代码。每一个核准以#带一个空格开始。讲明的内容是“为什么”,而不是“是什么”。
利用一行 – 或 = 来支解你的代码,从而更具可读性。
“`
# Load data