iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 5
0

1. file 檔案規則

  • Name 文檔命名規則
    • 建議使用數字、小寫英文、中線、下底線
    • 英文之間用中線、下底線分隔
    • 有順序應以數字為前綴.超過10個檔案,個位數補零.三位數類推.
  • Structure
    • 善用 註解方式#---劃分區域,增加程式可讀性
    • 如有引用安裝套件Package的作業,能在程式一開始就安裝完畢.

2. Synyax 寫作語法規則

  • Object names

    • 變數(variable)跟函數(function)名稱,應只使用小寫英文數字,加上下底線分隔文數字當作命名
    • 變數名稱文字詞性應該是名詞
    • 函數命名應使用動詞,並注意使用.避免造成混用
  • Spacing

    • 這幾個符號 = + - <- 前後應該都加一個空白
    • , 逗號務必在後面加空白,而非逗號之前 ,
    • : :: ::: 這幾個符號,不需要加空白
    • 小括號(的前面需要加空格,呼叫函數時除外
      if (debug) show(x)
      plot(x, y)
      # Bad
      if(debug)show(x)
      plot (x, y)
      
    • 若為對齊=號或賦值符號<-,可使用多個空格
  • Indenting

    • 大括弧{}是重要的代碼層級定義
    • 大括弧{不使用Tab鍵進行縮排,用兩個空格進行縮排。
    • 大括號的左半邊{不能獨佔一行。
    • 大括弧右半邊}應獨佔一行,除非後面有else或)。
    • 但若若if語句非常簡單,僅佔一行,可不使用大括號
      y <- 10
      x <- if (y < 20) "Too low" else "Too high"
      
  • Long lines

    • 每行代碼宜不超過80個字元。

    • 若代碼超出這80個字元,應儘量將一些功能打包成獨立的函數。

    • 若代碼太長,不能寫成一行代碼,可以一行寫函數名,一行寫參數,一行寫右括號)。這樣代碼可讀性更強,也便於修改。例如:

      # Good
      do_something_very_complicated(
        "that",
        requires = many,
        arguments = "some of which may be long"
      )
      
      # Bad
      do_something_very_complicated("that", requires, many, arguments,
                                    "some of which may be long"
                                    )
      
    • 若參數之間關係密切,可以將幾個參數放在同一行中,例如用paste()或stop()字符串。如有可能,生成字符串時要將一行代碼和它的輸出放到同一行中。不要把分號;放在行尾,也不要用它分隔同一行的多條命令。

        # Good
        paste0(
          "Requirement: ", requires, "\n",
          "Result: ", result, "\n"
        )
    
        # Bad
        paste0(
          "Requirement: ", requires,
          "\n", "Result: ",
          result, "\n")
    
  • Assignment

    • 進行值的給定,請使用<-,不要使用=.
    x <- 5
    # Bad
    x = 5 
    
  • Semicolons

    • 無論是程式碼或是註解,都避免使用分號;當作結尾.
  • Quites

    • 僅使用雙引號“用以標注文字.
    • 除非文字內容已包含雙引號,再視狀況使用單引號

Functions

  • Naming
  • Long lines
  • return()
  • Comments
  • Desgin

參考資訊

The tidyverse style guide
Learn the tidyverse-R for data science
CRAN-tidyverse: Easily Install and Load the 'Tidyverse'


上一篇
(Day4)tidyverse(上)-簡介
下一篇
(Day6) tidyverse(下)-pipe
系列文
職場老鳥的資料科學初體驗-R語言專案實作紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言