來自 Google 的 R 語言編碼風格指南

2021-08-13 00:50:26 字數 3290 閱讀 1584

r 語言是一門主要用於統計計算和繪圖的高階程式語言。這份 r 語言編碼風格指南旨在讓我們的 r **更容易閱讀、分享和檢查。以下規則系與 google 的 r 使用者群體協同設計而成。

概要:r編碼風格約定

一、表示和命名

二、語法

三、**組織

概要:r語言使用規則

四、語言

五、例外

六、結語

七、參考文獻

# 正例

tabprior <- table(df[df$daysfromopt < 0, "campaignid"])

total <- sum(x[, 1])

total <- sum(x[1, ])

# 反例

tabprior <- table(df[df$daysfromopt<0, "campaignid"]) # '<'兩側需要增加空格

tabprior <- table(df[df$daysfromopt < 0,"campaignid"]) # 逗號後需要增加乙個空格

tabprior<- table(df[df$daysfromopt < 0, "campaignid"]) # <-前需要增加乙個空格

tabprior<-table(df[df$daysfromopt < 0, "campaignid"]) # '<-'兩側需要增加空格

total <- sum(x[,1]) # 逗號後需要增加乙個空格

total <- sum(x[ ,1]) # 逗號後需要增加乙個空格,而非逗號之前

在前括號前加乙個空格,函式呼叫時除外。

# 正例

if (debug)

# 反例

if(debug)

如果能夠改善等號或箭頭(<−)的對齊效果,也可以在同一行內使用多個空格。

plot(x    = xcoord,

y = datamat[, makecolname(metric, ptiles[1], "roiopt")],

ylim = ylim,

xlab = "dates",

ylab = metric,

main = (paste(metric, " for 3 samples ", sep="")))

不要在圓括號或方括號的兩側加入空格。

例外:逗號後總須加空格。

# 正例

if (debug)

x[1, ]

# 反例

if ( debug ) # debug兩側不要加空格

x[1,] # 逗號後需要增加乙個空格

# 正例

if (is.null(ylim))

或用以下形式(二者不可混用):

if (is.null(ylim))

ylim <- c(0, 0.06)

必須另起一行書寫**塊的主體部分。

# 反例

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

if (is.null(ylim))

# 正例

if (condition) else

# 反例

if (condition)

else

# 反例

if (condition)

one line

else

one line

# 正例

x <- 5

# 反例

x = 5

# 生成乙個頻率直方圖,以描述campaigns的預算百分比

hist(df$pctspent,

breaks = "scott", # 定義柱形數量的引數

main = "histogram: fraction budget spent by campaignid",

xlab = "fraction of budget spent",

ylab = "frequency (count of campaignids)")

# 正例

predictctr <- function(query, property, numdays,

showplot = true)

# 反例

predictctr <- function(query, property, numdays, showplot =

true)

理想情況下,單元測試應該充當函式呼叫的樣例(對於包中的程式來說)。

calculatesamplecovariance <- function(x, y, verbose = true) 

if (true %in% is.na(x) || true %in% is.na(y))

covariance <- var(x, y)

if (verbose)

cat("covariance = ", round(covariance, 4), ".\n", sep = "")

return(covariance)

}

除非有不去這樣做的正當理由,否則應當遵循以上描述的編碼慣例。例外包括遺留**的維護和對第三方**的修改。

遵守常識,前後一致。

如果您在編輯現有**,花幾分鐘看看**的上下文並弄清它的風格。

如果其他人在 if 語句周圍使用了空格,那您也應該這樣做。

如果他們的注釋是用星號組成的小盒子圍起來的,那您也要這樣寫。

遵循編碼風格準則的意義在於,人們相當於有了乙個程式設計的通用詞彙表。於是人們可以專注於您在說什麼,而不是您是怎麼說的。

我們在這裡提供全域性的編碼風格規則以便人們了解這些詞彙,但區域性風格也很重要。

如果您加入檔案中的**看起來和周圍的已有**截然不同,那麼**閱讀者的閱讀節奏就會被破壞,盡量避免這樣做。

ok,關於如何寫**已經寫得夠多了,**本身要有趣的多。編碼愉快!

r語言編碼慣例

為emacs使用者而生,在您的emacs中執行r並產生乙個emacs模式

來自 Google 的 R 語言編碼風格指南

r語言是一門主要用於統計計算和繪圖的高階程式語言.這份 r 語言編碼風格指南旨在讓我們的 r 更容易閱讀 分享和檢查.以下規則系與 google 的 r 使用者群體協同設計而成.檔案命名 以.r 大寫 結尾 識別符號命名 variable.name,functionname,kconstantnam...

來自Google的圍棋AlphaGo

圍棋起源於三千多年前的中國,孔丘曰 飽食終日,無所用心,難矣哉!不有博弈者乎,為之猶賢乎已。意思是 整天吃飽了飯,什麼都不想,真太難了!不是有下棋 指圍棋 的嗎?下下棋,總比什麼都不做要好。目前,全球共有四千萬人在玩圍棋。玩圍棋的步法主要依靠直覺與構想,因為它精緻而又有極高的智力要求,幾個世紀以來一...

R語言讀寫中文編碼方式

r語言讀寫資料的方法很多,這裡主要是我在使用read.csv read.table和write.csv write.table時遇到的一些中文格式編碼的問題。常見的中文編碼方式兩種 gbk gb2312 和utf 8。windows系統下 read.csv 和read.table 方法不指定檔案格式...