R編程風格指南
markdown
R編程風格指南
===
R語言是一門主要用於統計計算和繪圖的高級編程語言
依循R語言編碼風格指南使我們的R代碼更容易閱讀,分享和檢查
[TOC]
>資料參考自[Google's R Style Guide](https://google.github.io/styleguide/Rguide.xml)
文檔名 : Test.R
---
副檔名為.R
文件名稱應具有意義可提示文檔內容
:+1: predict_ad_revenue.R
:-1: foo.R
變數名稱(identifiers)
---
不使用下劃線(_)或連字符(-)
變量名稱應包含所有小寫字母和單詞以點(.)分隔
函數名稱有大寫字母且沒有點(CapWords)
- variable.name
:+1: avg.clicks
:-1: avg_Clicks ,avgClicks
- FunctionName
:+1: CalculateAvgClicks
:-1: calculate_avg_clicks , calculateAvgClicks
句法
---
- 最大行長度為80個字元
- 縮進代碼時,請使用兩個空格
- 運算符號前後需保持間距 (=, +,-,<-,等)
-- 在使用等號傳遞參數時,前後的空格是可選則的
-- 不要在逗號前放置空格,但始終在逗號後面放置一個空格
```R
# Good
tabPrior <- table(df[df$daysFromOpt < 0, "campaignid"])
total <- sum(x[, 1])
total <- sum(x[1, ])
# Bad
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]) # 在逗號之後,而不是之前創建一個空格
```
---
- 在左括號前放置一個空格,函數調用除外
```R
#Good
if (debug)
#Bad
if(debug)
```
- 不要在括號或方括號中的代碼周圍放置空格
```R
# Good
if (debug)
x[1, ]
# Bad
if ( debug ) #變數周圍沒有空格
x[1,] # 逗號後需要一個空格
```
- 大括號不應該出現在單獨一行
```R
# Good
if (is.null(ylim)) {
ylim <- c(0, 0.06)
}
# Bad
if (is.null(ylim)) {ylim <- c(0, 0.06)}
```
賦值
---
> 使用 **<-** 而不是 **=**
```R
# Good
x <- 5
# Bad
x = 5
```
備註
---
> 整個註釋行應以#和一個空格開頭
```R
# Create histogram of frequency of campaigns by pct budget spent.
hist(df$pctSpent,
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)")
```
自訂函數
---
> 函數定義應首先列出沒有默認值的參數,然後列出具有默認值的參數。
```R
# Good
PredictCTR <- function(query, property, num.days,
show.plot = TRUE)
# Bad
PredictCTR <- function(query, property, num.days, show.plot =
TRUE)
```
後記
---
部分指南我並未說明
原因是我並不了解原文意義
或未使用過相關功能
若是有興趣的也可以參考別人完整翻譯的版本
[来自Google的R语言编码风格指南](https://nanx.me/rstyle/)
今天先分享到這邊希望大家都有收穫
網站所有文章皆為 H.B. Liu 撰寫,歡迎分享但勿轉製
也可以[到粉專私訊我](https://www.facebook.com/LHB0222/)
喜歡我分享的內容也可以按讚追蹤一下我的粉專
幫我分享給所~~~有的朋友 \o/
有所錯誤歡迎指教->
留言
張貼留言