內容簡介
本書是一本開發理念與開發實例相結合的實用指南,主要內容包括:R包基礎知識介紹,包的基本結構和可能形式,R代碼,包的元數據,對象文檔,長格式文檔,數據,命名空間,編譯過的代碼,Git和GitHub,發布包,等等。其目的是教會你如何開發包,讓你可以開發自己的包,而不只是使用別人的包,進而從R包的使用者蛻變成R包的開發者。
目錄
中文版推薦序一xi
中文版推薦序二 xiii
譯者序 xv
前言 xvii
第一部分 入門
第1 章簡介 2
1.1 開發理念 3
1.2 入門 3
1.3 約定 4
1.4 版本記錄 5
第2 章包的結構 6
2.1 給包命名 6
2.1.1 命名的要求 6
2.1.2 命名的策略 6
2.2 創建一個包 7
2.3 RStudio項目 9
2.4 什麼是包 12
2.4.1 源碼包 12
2.4.2 壓縮檔 12
2.4.3 二進制包 13
2.4.4 已安裝的包 15
2.4.5 記憶體中的包 15
2.5 什麼是庫 16
第二部分 包的組件
第3 章R代碼 20
3.1 R代碼的工作流程 20
3.2 組織函式 21
3.3 代碼風格 21
3.3.1 對象名稱 22
3.3.2 空格 23
3.3.3 花括弧 24
3.3.4 行的長度 24
3.3.5 縮進 24
3.3.6 賦值表達式 25
3.3.7 注釋指南 25
3.4 頂層代碼 26
3.4.1 載入代碼 26
3.4.2 R運行環境 27
3.4.3 何時需要副作用 28
3.4.4 S4類、泛型和方法 29
3.5 CRAN註記 29
第4 章包的元數據 31
4.1 依賴:包需要什麼 32
4.1.1 版本 33
4.1.2 其他依賴 34
4.2 標題和描述:包是做什麼的 34
4.3 作者:你是誰 36
4.4 許可證:誰能使用包 37
4.5 版本 38
4.6 其他域 39
第5 章對象文檔 40
5.1 文檔工作流程 41
5.2 另一個文檔工作流程 42
5.3 roxygen注釋 43
5.4 函式文檔 45
5.5 數據集文檔 47
5.6 包文檔 47
5.7 類、泛型和方法的文檔 47
5.7.1 S3 47
5.7.2 S4 48
5.7.3 RC 49
5.8 特殊字元 49
5.9 不要重複自己 50
5.9.1 從其他函式繼承參數 50
5.9.2 在同一檔案中為多個函式提供文檔 51
5.10 文本格式參考 52
5.10.1 字元格式 52
5.10.2 連結 52
5.10.3 列表 52
5.10.4 數學符號 53
5.10.5 表 53
第6 章使用指南:長篇文檔 54
6.1 使用指南工作流程 55
6.2 元數據 56
6.3 Markdown 56
6.3.1 章節 57
6.3.2 列表 57
6.3.3 內聯格式 58
6.3.4 表格 58
6.3.5 代碼 59
6.4 knitr 59
6.5 開發周期 62
6.6 寫使用指南的建議 62
6.7 CRAN註記 63
6.8 下一步 63
第7 章測試 65
7.1 測試工作流程 66
7.2 測試結構 67
7.3 編寫測試 70
7.3.1 測試什麼 71
7.3.2 跳過測試 71
7.3.3 建立自己的測試工具 72
7.4 測試檔案 73
7.5 CRAN註記 74
第8 章命名空間 75
8.1 動機 75
8.2 搜尋路徑 76
8.3 命名空間 78
8.4 工作流程 79
8.5 導出 80
8.5.1 S3 81
8.5.2 S4 81
8.5.3 RC 82
8.5.4 數據 82
8.6 導入 82
8.6.1 R函式 82
8.6.2 S3 83
8.6.3 S4 83
8.6.4 編譯過的函式 83
第9 章外部數據 84
9.1 導出的數據 84
9.2 內部數據 86
9.3 原始數據 87
9.4 其他數據 87
9.5 CRAN註記 87
第10 章編譯過的代碼 88
10.1 C++ 88
10.1.1 工作流程 89
10.1.2 文檔 90
10.1.3 導出C++代碼 91
10.1.4 導入C++代碼 91
10.1.5 最佳實踐 91
10.2 C 92
10.2.1 .Call()入門 92
10.2.2 .C()入門 94
10.2.3 工作流程 95
10.2.4 導出C代碼 95
10.2.5 導入C代碼 96
10.2.6 最佳實踐 97
10.3 調試編譯過的代碼 97
10.4 makefile 99
10.5 其他語言 100
10.6 許可 100
10.7 開發工作流程 100
10.8 CRAN的問題 101
第11 章安裝檔案 102
11.1 包引用 103
11.2 其他語言 104
第12 章其他組成部分 105
第三部分 最佳實踐
第13 章Git和GitHub 108
13.1 RStudio、Git和GitHub 109
13.2 初始設定 110
13.3 創建本地的Git倉庫 111
13.4 查看改變 113
13.5 記錄改變 114
13.6 提交的最佳實踐 117
13.7 忽略檔案 118
13.8 撤銷一個錯誤 118
13.9 與GitHub同步 120
13.10 使用GitHub的好處 121
13.11 與他人合作 122
13.12 問題 124
13.13 分支 124
13.14 創建拉請求 125
13.15 向另一個倉庫提交拉請求 127
13.16 審查和接受請求 129
13.17 更多內容 129
第14 章自動檢查 131
14.1 工作流程 131
14.2 檢查 132
14.2.1 檢查元數據 132
14.2.2 包的結構 133
14.2.3 描述 134
14.2.4 命名空間 136
14.2.5 代碼 136
14.2.6 數據 138
14.2.7 文檔 139
14.2.8 演示 140
14.2.9 編譯過的代碼 140
14.2.10 測試 141
14.2.11 使用指南 141
14.3 使用Travis進行每次提交後的檢查 143
14.3.1 基本配置 143
14.3.2 其他用途 144
第15 章發布包 145
15.1 版本號 145
15.2 向後兼容 146
15.3 提交過程 148
15.3.1 測試環境 149
15.3.2 檢查結果 150
15.3.3 反向依賴 150
15.4 CRAN的政策 151
15.5 重要檔案 152
15.5.1 README.md 152
15.5.2 README.Rmd 152
15.5.3 NEWS.md 153
15.6 發布 154
15.6.1 關於提交失敗 154
15.6.2 二進制包編譯 155
15.7 準備下一個版本 156
15.8 宣傳包 156
15.9 祝賀你 157