R語(yǔ)言代碼規(guī)范

編程的代碼規(guī)范目的是使我們的R代碼更容易閱讀、分享和驗(yàn)證,下述是一些約定俗成的代碼規(guī)范:

1.0 文件名

對(duì)于R file名字的命名,一般采用一些有意義的名字來(lái)命名,不要有特殊字符和空格,但是要注意大小寫(特別是windowws系統(tǒng)是不管大小寫的),所以最好就小寫就行了;R代碼就放在.R文件中,而R數(shù)據(jù)文件則放在.RData文件中。我一般不用下劃線分割文件名,而是使用大小寫交替的方式

GOOD: predict_ad_revenue.R; PredictAdRevenue.R
BAD: foo.R

2.0 標(biāo)識(shí)符(Identifiers)

不要使用下劃線(_)或連字符(-)標(biāo)識(shí)符。標(biāo)識(shí)符應(yīng)按照以下命名約定。變量名的首選形式都是小寫字母和單詞分開(kāi)用點(diǎn)(variable.name),但也接受variableName;函數(shù)名使用首字母大寫而不用點(diǎn)(FunctionName);

variable.name is preferred, variableName is accepted
GOOD: avg.clicks
OK: avgClicks
BAD: avg_Clicks

FunctionName
GOOD: CalculateAvgClicks
BAD: calculate_avg_clicks , calculateAvgClicks
Make function names verbs.
Exception: When creating a classed object, the function name

3.0 間距(Spacing)

當(dāng)使用所有二進(jìn)制運(yùn)算符(如=,+,-,<,等)在兩端空格。例外:當(dāng)符號(hào) = 是函數(shù)調(diào)用時(shí)的傳遞參數(shù)周圍不用空格隔開(kāi)。
不要在符號(hào)“,”前空格隔開(kāi),但需要在“,”后添加空格
good style

tab.prior <- table(df[df$days.from.opt < 0, "campaign.id"]) 
total <- sum(x[, 1]) 
total <- sum(x[1, ])123

bad style

tab.prior <- table(df[df$days.from.opt<0, "campaign.id"])  # Needs spaces around '<' 
tab.prior <- table(df[df$days.from.opt < 0,"campaign.id"])  # Needs a space after the comma
tab.prior<- table(df[df$days.from.opt < 0, "campaign.id"])  # Needs a space before <
tab.prior<-table(df[df$days.from.opt < 0, "campaign.id"])  # Needs spaces around <
total <- sum(x[,1])  # Needs a space after the comma 
total <- sum(x[ ,1])  # Needs a space after the comma, not before123456

4.0 花括號(hào)(Curly braces)

前括號(hào)永遠(yuǎn)不應(yīng)該獨(dú)占一行; 后括號(hào)應(yīng)當(dāng)總是獨(dú)占一行. 在代碼塊只含單個(gè)語(yǔ)句時(shí)可省略花括號(hào)

if (is.null(ylim)) {
  ylim <- c(0, 0.06)
}

5.0 賦值

使用<-進(jìn)行賦值, 不用=賦值.

6.0 注釋

整行注釋應(yīng)以#后接一個(gè)空格開(kāi)始,行內(nèi)短注釋應(yīng)在代碼后接兩個(gè)空格, #, 再接一個(gè)空格。

# Create histogram of frequency of campaigns by pct budget spent.
hist(df$pct.spent,
     breaks = "scott",  # method for choosing number of buckets
     main   = "Histogram: fraction budget spent by campaignid",
     xlab   = "Fraction of budget spent",
     ylab   = "Frequency (count of campaignids)")

7.0 函數(shù)的定義和調(diào)用

函數(shù)定義應(yīng)首先列出無(wú)默認(rèn)值的參數(shù), 然后再列出有默認(rèn)值的參數(shù)。函數(shù)定義和函數(shù)調(diào)用中, 允許每行寫多個(gè)參數(shù); 折行只允許在賦值語(yǔ)句外進(jìn)行。

8.0 分號(hào)

不要以分號(hào)結(jié)束一行, 也不要利用分號(hào)在同一行放多于一個(gè)命令. (分號(hào)是毫無(wú)必要的, 并且為了與其他Google編碼風(fēng)格指南保持一致, 此處同樣略去. )(分號(hào)作為語(yǔ)句結(jié)束標(biāo)識(shí),雖然不規(guī)范,但是在縮短文檔長(zhǎng)度的時(shí)候我會(huì)選擇使用...)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容