1.一般性規(guī)則
(1)避免使用attach
疟暖。
(2)寫函數(shù)時(shí)盡量少的使用stop()
绝骚。
(3)定義S3和S4的對(duì)象不要混在一起使用贪嫂。
2.文件命名
(1)文件名應(yīng)以.R結(jié)尾寺庄,文件名本身要有意義,如:predict_ad_revenue.R
撩荣。
(2)R代碼就放在.R文件中铣揉,而R數(shù)據(jù)文件則放在.RData文件中。
3.變量名和函數(shù)命名規(guī)則
注意餐曹,在R環(huán)境下逛拱,大小寫是敏感的。
1.變量名應(yīng)都用小寫字母台猴,單詞間用.分隔朽合。
2.函數(shù)名的每個(gè)單詞用大寫字母開頭,不用.連接饱狂。
3.常數(shù)項(xiàng)與函數(shù)命名規(guī)則一致曹步,但以小寫k開頭。
以下舉例說明:
變量:avg.clicks
休讳;
函數(shù)名:CalculateAvgClicks
用動(dòng)詞命名函數(shù)讲婚;
常數(shù)項(xiàng):kConstantName
。
4.R語句
(1)單行長(zhǎng)度
每行最長(zhǎng)80個(gè)字符俊柔。
(2)縮進(jìn)
使用兩個(gè)空格來縮進(jìn)代碼筹麸,不要使用制表符或混合使用二者活合。
(3)空格
1.在所有二次運(yùn)算符(=,+物赶,-白指,<-,等)的兩側(cè)加上空格酵紫。
2.不可在逗號(hào)前加空格告嘲,逗號(hào)后必須加空格。
例如:tabPrior <- table(df[df$daysFromOpt < 0, "campaignid"])
3.括號(hào)左邊用空格奖地,調(diào)用函數(shù)時(shí)除外橄唬。例如:if (debug)
。
4.可以多使用空格(一行中有多個(gè)空格)鹉动,如果這能夠改善符號(hào)間的對(duì)齊轧坎。
圓括號(hào)或方括號(hào)內(nèi)的代碼兩側(cè)不要加空格,逗號(hào)后面除外泽示。
(4)花括號(hào)
1.開始的{不能單獨(dú)成行缸血,結(jié)束的}必須單獨(dú)成行,如:
if (is.null(ylim)) {
ylim <- c(0, 0.06)
}
2.單獨(dú)的一個(gè)語句應(yīng)從新的一行開始械筛。
(5)賦值
使用 <- 進(jìn)行賦值捎泻,不用 = 賦值。
5.代碼組織
如果是做項(xiàng)目或者多人合作埋哟,便于所有人都能快速閱讀并理解他人的腳本笆豁,以下信息是必須有的:
a)版權(quán)聲明注釋
b)作者信息注釋
c)文件說明注釋(包括程序的用途,輸入赤赊,輸出)
d)source()
和library()
語句說明
e)函數(shù)定義
6.注釋
開發(fā)工程師應(yīng)養(yǎng)成良好的注釋習(xí)慣闯狱。
整行注釋以 # 開頭,加一個(gè)空格抛计,如:# Create histogram of frequency
哄孤。
行內(nèi)短注釋需要在代碼后面空兩格,然后 # 吹截,再加一個(gè)空格瘦陈,如:
hist(df$pctSpent,
breaks = "scott", # method for choosing number of buckets
x = "Frequency (count of campaignids)")
7.函數(shù)定義與調(diào)用
函數(shù)定義應(yīng)首先列出無默認(rèn)值的參數(shù),然后再列出有默認(rèn)值的參數(shù)波俄。
在函數(shù)定義和調(diào)用時(shí)晨逝,允許每行寫多個(gè)參數(shù),一般只在賦值時(shí)才換行懦铺。如:
PredictCTR <- function(query, property, numDays,
showPlot = TRUE)
在函數(shù)的定義行下方應(yīng)當(dāng)緊接一個(gè)注釋區(qū)捉貌,包括:
-描述函數(shù)的作用
-描述函數(shù)的參數(shù)列表,用Args
:對(duì)每個(gè)參數(shù)進(jìn)行描述(包括數(shù)據(jù)類型)
-描述返回值,用Returns
:
注釋部分應(yīng)盡可能詳細(xì)充分昏翰,以便調(diào)用者在不閱讀代碼時(shí)就能使用該函數(shù)苍匆。