R語言:邁向大數據之路

R語言:邁向大數據之路

本書旨在幫助讀者迅速構建起與數據分析相關的知識體系,並學習如何使用R軟體實現數據分析方法。本書全面介紹了來自統計分析、機器學習、人工智慧等領域的多種數據分析算法,在講解與之相關的R代碼時,還討論了這些算法的原理、優缺點與適用背景。

內容簡介

DOS 時代用彙編語言,Windows 時代倡導 Windows 編程,Internet 時代是 HTML 的天下,進入大數據時代, R 語言必須掌握! 本書作者作為一名歷經四個時代的老程式設計師,深知學習編程的痛苦與歡樂,結合多年的開發經驗完成此書。 本書將從無到有地教讀者 R 語言的使用,同時學習本書並不需要統計學基礎,在學習編程的過程中,就掌握 了一些必要的統計知識。本書完整講解了幾乎所有 R 語言語法與使用技巧,通過豐富的程式案例講解,讓你事半 功倍。

圖書目錄

Chapter01 基本概念

1-1 BigData的起源2

1-2 R語言之美2

1-3 R語言的起源2

1-4 R的運行環境5

1-5 R的擴展5

1-6本書的學習目標5

本章習題6

Chapter02 第一次使用R

2-1第一次啟動R8

2-1-1在MacOS下啟動R8

2-1-2在MacOS下啟動RStudio8

2-1-3在Windows環境中啟動R和RStudio9

2-2認識RStudio環境10

2-3第一次使用R12

2-4R語言的對象設定15

2-5Workspace視窗16

2-6結束RStudio18

2-7保存工作成果19

2-7-1使用save()函式保存工作成果19

2-7-2使用saveimage()函式保存Workspace20

2-7-3下載之前保存的工作20

2-8歷史記錄21

2-9程式注釋22

本章習題24

Chapter03 R的基本數學運算

3-1對象命名原則28

3-2基本數學運算28

4

R語言——邁向大數據之路

3-2-1四則運算28

3-2-2餘數和整除29

3-2-3次方或平方根29

3-2-4絕對值30

3-2-5exp()與對數30

3-2-6科學符號e31

3-2-7圓周率與三角函式32

3-2-8四捨五入函式32

3-2-9近似函式33

3-2-10階乘34

3-3R語言控制運算的優先權34

3-4無限大Infinity35

3-5NotaNumber(NaN)36

3-6NotAvailable(NA)37

本章習題39

Chapter04 向量對象運算

4-1數值型的向量對象44

4-1-1建立規則型的數值向量對象應使用序列符號44

4-1-2簡單向量對象的運算45

4-1-3建立向量對象函式seq()46

4-1-4連線向量對象函式c()47

4-1-5重複向量對象函式rep()48

4-1-6numeric()函式48

4-1-7程式語句跨行的處理49

4-2常見向量對象的數學運算函式50

4-3考慮Inf、-Inf、NA的向量運算53

4-4R語言的字元串數據的屬性54

4-5探索對象的屬性55

4-5-1探索對象元素的屬性55

4-5-2探索對象的結構56

4-5-3探索對象的數據類型57

4-6向量對象元素的存取57

4-6-1使用索引取得向量對象的元素57

4-6-2使用負索引挖掘向量對象內的部分元素58

5

目錄

4-6-3修改向量對象元素值59

4-6-4認識系統內建的數據集letters和LETTERS60

4-7邏輯向量(LogicalVector)61

4-7-1基本套用61

4-7-2對Inf、-Inf和缺失值NA的處理63

4-7-3多組邏輯表達式的套用64

4-7-4NOT表達式65

4-7-5邏輯值TRUE和FALSE的運算65

4-8不同長度向量對象相乘的套用66

4-9向量對象的元素名稱67

4-9-1建立簡單含元素名稱的向量對象67

4-9-2names()函式67

4-9-3使用系統內建的數據集islands68

本章習題71

Chapter05 處理矩陣與更高維數據

5-1矩陣Matrix78

5-1-1建立矩陣78

5-1-2認識矩陣的屬性79

5-1-3將向量組成矩陣81

5-2取得矩陣元素的值82

5-2-1矩陣元素的取得82

5-2-2使用負索引取得矩陣元素83

5-3修改矩陣的元素值84

5-4降低矩陣的維度86

5-5矩陣的行名和列名87

5-5-1取得和修改矩陣對象的行名和列名88

5-5-2dimnames()函式89

5-6將行名或列名作為索引90

5-7矩陣的運算91

5-7-1矩陣與一般常數的四則運算91

5-7-2行(Row)和列(Column)的運算93

5-7-3轉置矩陣94

5-7-4%*%矩陣相乘94

5-7-5diag()95

6

R 語言——邁向大數據之路

5-7-6 solve() 96

5-7-7 det() 97

5-8 三維或高維數組 97

5-8-1 建立三維數組 97

5-8-2 identical()函式 98

5-8-3 取得三維數組的元素 98

5-9 再談 class()函式 99

本章習題 101

Chapter 06 因子 Factor

6-1 使用 factor()或 asfactor()函式建立因子 108

6-2 指定缺失的 Levels 值 109

6-3 labels 參數 109

6-4 因子的轉換 110

6-5 數值型因子在轉換時常見的錯誤 110

6-6 再看 levels 參數 111

6-7 有序因子(Ordered Factor) 112

6-8 table()函式 113

6-9 認識系統內建的數據集 114

本章習題 116

Chapter 07 數據框 Data Frame

7-1 認識數據框 120

7-1-1 建立第一個數據框 120

7-1-2 驗證與設定數據框的列名和行名 121

7-2 認識數據框的結構 121

7-3 取得數據框的內容 122

7-3-1 一般取得 122

7-3-2 特殊字元$ 123

7-3-3 再看取得的數據 123

7-4 使用 rbind()函式增加數據框的行數據 124

7-5 使用 cbind()函式增加數據框的列數據 125

7-5-1 使用$符號 126

7-5-2 一次加多個列數據 126

7-6 再談轉置函式 t() 127

本章習題 128

7

目錄

Chapter 08 串列 List

8-1 建立串列 134

8-1-1 建立串列對象——對象元素不含名稱 134

8-1-2 建立串列對象——對象元素含名稱 134

8-1-3 處理串列內對象元素的名稱 135

8-1-4 獲得串列的對象元素個數 136

8-2 獲得串列內對象的元素內容 136

8-2-1 使用“$”符號取得串列內對象的元素內容 136

8-2-2 使用“[[ ]]”符號取得串列內對象的元素內容 137

8-2-3 串列內對象的名稱也可當索引值 137

8-2-4 使用“[ ]”符號取得串列內對象的元素內容 138

8-3 編輯串列內對象的元素值 139

8-3-1 修改串列元素的內容 139

8-3-2 為串列增加更多元素 141

8-3-3 刪除串列內的元素 144

8-4 串列合併 145

8-5 解析串列的內容結構 146

本章習題 148

Chapter09 進階字元串的處理

9-1語句的分割154

9-2修改字元串的大小寫154

9-3unique()函式的使用155

9-4字元串的連線155

9-4-1使用paste()函式常見的失敗實例1155

9-4-2使用paste()函式常見的失敗實例2156

9-4-3字元串的成功連線與collapse參數156

9-4-4再談paste()函式157

9-4-5撲克牌向量有趣的套用158

9-5字元串數據的排序158

9-6搜尋字元串的內容159

9-6-1使用索引值搜尋160

9-6-2使用grep()函式搜尋160

9-7字元串內容的更改161

9-8正則表達式(RegularExpression)162

8

R語言——邁向大數據之路

9-8-1搜尋具有可選擇性162

9-8-2搜尋分類字元串163

9-8-3搜尋部分字元可重複的字元串163

本章習題164

Chapter10 日期和時間的處理

10-1日期的設定與使用170

10-1-1asDate()函式170

10-1-2weekdays()函式170

10-1-3months()函式171

10-1-4quarters()函式171

10-1-5Syslocaleconv()函式171

10-1-6SysDate()函式172

10-1-7再談seq()函式172

10-1-8使用不同格式表示日期173

10-2時間的設定與使用173

10-2-1Systime()函式174

10-2-2asPOSIXct()函式174

10-2-3時間也是可以作比較的175

10-2-4seq()函式與時間175

10-2-5asPOSIXlt()函式175

10-3時間序列177

本章習題180

Chapter11 編寫自己的函式

11-1正式編寫程式184

11-2函式的基本組成184

11-3設計第一個函式185

11-4函式也是一個對象186

11-5程式代碼的簡化187

11-6return()的功能188

11-7省略函式的大括弧189

11-8傳遞多個函式參數的套用190

11-8-1設計可傳遞兩個參數的函式190

11-8-2函式參數的默認值191

9

目錄

11-8-33點參數“”的使用192

11-9函式也可以作為參數194

11-9-1正式實例套用194

11-9-2以函式的程式代碼作為參數傳送195

11-10局部變數和全局變數195

11-11通用函式(GenericFunction)196

11-11-1認識通用函式print()197

11-11-2通用函式的默認函式198

11-12設計第一個通用函式198

11-12-1最佳化轉換百分比函式199

11-12-2設計通用函式的默認函式200

本章習題202

Chapter12 程式的流程控制

12-1if語句208

12-1-1if語句的基本操作208

12-1-2if…else語句210

12-1-3if語句也可有返回值212

12-1-4if…elseif…elseif…else213

12-1-5嵌套式if語句214

12-2遞歸式函式的設計215

12-3向量化的邏輯表達式217

12-3-1處理向量數據時if…else產生的錯誤217

12-3-2ifelse()函式217

12-4switch語句219

12-5for循環221

12-6while循環224

12-7repeat循環225

12-8再談break語句226

12-9next語句227

本章習題228

Chapter13 認識apply家族

13-1apply()函式234

13-2sapply()函式236

13-3lapply()函式238

10

R語言——邁向大數據之路

13-4tapply()函式238

13-5iris鳶尾花數據集240

本章習題242

Chapter14 輸入與輸出

14-1認識資料夾248

14-1-1getwd()函式248

14-1-2setwd()函式248

14-1-3filepath()函式248

14-1-4dir()函式248

14-1-5listfiles()函式249

14-1-6fileexist()函式250

14-1-7filerename()函式250

14-1-8filecreate()函式250

14-1-9filecopy()函式250

14-1-10fileremove()函式251

14-2數據輸出cat()函式251

14-3讀取數據scan()函式253

14-4輸出數據write()函式256

14-5數據的輸入257

14-5-1讀取剪貼簿數據257

14-5-2讀取剪貼簿數據readtable()函式258

14-5-3讀取Excel檔案數據259

14-5-4認識CSV檔案以及如何讀取Excel檔案數據260

14-5-5認識delim檔案以及如何讀取Excel檔案數據262

14-6數據的輸出263

14-6-1writeClipboard()函式263

14-6-2writetable()函式264

14-7處理其他數據265

本章習題272

Chapter15 數據分析與處理

15-1複習數據類型276

15-2隨機抽樣276

15-2-1將隨機抽樣套用於撲克牌277

11

目錄

15-2-2種子值277

15-2-3模擬骰子279

15-2-4比重的設定279

15-3再談向量數據的抽取並以islands為實例280

15-4數據框數據的抽取——對重複值的處理282

15-4-1重複值的搜尋284

15-4-2which()函式285

15-4-3抽取數據時去除重複值285

15-5數據框數據的抽取——對NA值的處理287

15-5-1抽取數據時去除含NA值的行數據287

15-5-2naomit()函式288

15-6數據框的欄位運算289

15-6-1基本數據框的欄位運算289

15-6-2with()函式290

15-6-3identical()函式290

15-6-4將欄位運算結果存入新的欄位290

15-6-5within()函式291

15-7數據的分割291

15-7-1cut()函式292

15-7-2分割數據時直接使用labels設定名稱292

15-7-3了解每一人口數分類有多少州293

15-8數據的合併293

15-8-1之前的準備工作294

15-8-2merge()函式使用於交集合併的情況295

15-8-3merge()函式使用於並集合併的情況296

15-8-4merge()函式參數“allx=TRUE”296

15-8-5merge()函式參數“ally=TRUE”297

15-8-6match()函式297

15-8-7%in%298

15-8-8match()函式結果的調整299

15-9數據的排序299

15-9-1之前的準備工作299

15-9-2向量的排序300

15-9-3order()函式301

15-9-4數據框的排序301

12

R語言——邁向大數據之路

15-9-5排序時增加次要鍵值的排序302

15-9-6混合排序與xtfrm()函式304

15-10系統內建數據集mtcars305

15-11aggregate()函式307

15-11-1基本使用307

15-11-2公式符號FormulaNotation307

15-12建立與認識數據表格308

15-12-1認識長格式數據與寬格式數據309

15-12-2reshapes2擴展包309

15-12-3將寬格式數據轉成長格式數據melt()函式310

15-12-4將長格式數據轉成寬格式數據dcast()函式312

本章習題315

Chapter16 數據匯總與簡單圖表製作

16-1之前的準備工作320

16-1-1下載MASS擴展包與crabs對象320

16-1-2準備與調整系統內建state相關對象320

16-1-3準備mtcars對象322

16-2了解數據的唯一值322

16-3基礎統計知識與R語言323

16-3-1數據的集中趨勢323

16-3-2數據的離散程度325

16-3-3數據的統計328

16-4使用基本圖表認識數據331

16-4-1繪製直方圖331

16-4-2繪製密度圖334

16-4-3在直方圖內繪製密度圖336

16-5認識數據匯總函式summary()337

16-6繪製箱形圖338

16-7數據的相關性分析341

16-7-1iris對象數據的相關性分析341

16-7-2stateUSA對象數據的相關性分析343

16-7-3crabs對象數據的相關性分析344

16-8使用表格進行數據分析345

16-8-1簡單的表格分析與使用345

16-8-2從無到有建立一個表格數據345

13

目錄

16-8-3分別將矩陣與表格轉成數據框347

16-8-4邊際總和347

16-8-5計算數據的占比348

16-8-6計算行與列的數據占比349

本章習題350

Chapter17 常態分配

17-1用直方圖檢驗crabs對象356

17-2用直方圖檢驗beaver2對象357

17-3用QQ圖檢驗數據是否服從常態分配359

17-4shapirotest()函式361

本章習題363

Chapter18 數據分析——統計繪圖

18-1分類數據的圖形描述368

18-1-1條形圖與barplot()函式368

18-1-2圓餅圖與pie()函式371

18-2量化數據的圖形描述372

18-2-1點圖與dotchart()函式373

18-2-2繪圖函式plot()376

18-3在一個頁面內繪製多張圖表的套用391

18-4將數據圖存檔393

18-5開新視窗395

本章習題397

Chapter19 再談R的繪圖功能

19-1繪圖的基本設定404

19-1-1繪圖設備404

19-1-2繪圖設定407

19-1-3layout()函式的設定418

19-2高級繪圖421

19-2-1曲線繪圖curve()421

19-2-2繪圖函式coplot()423

19-2-33D繪圖函式426

19-3低級繪圖——附加圖形於已繪製完成的圖形429

19-3-1points()函式與text()函式429

14

R語言——邁向大數據之路

19-3-2lines()、arrows()與segments()函式432

19-3-3ploygon()函式繪製多邊形434

19-3-4abline()直線、legend()圖例、title()抬頭與axis()438

19-4互動式繪圖443

本章習題446

AppendixA 下載和安裝R

A-1下載R語言456

A-2下載RStudio458

AppendixB 使用R的補充說明

B-1獲得系統內建的數據集460

B-2看到陌生的函式461

B-3看到陌生的對象461

B-4認識CRAN463

B-5搜尋擴展包463

B-6安裝與載入擴展包464

B-7閱讀擴展包的內容465

B-8更新擴展包466

B-9搜尋系統目前的擴展包466

B-10卸載擴展包467

B-11R-Forge467

AppendixC 本書習題答案

AppendixD 函式索引表

相關詞條

熱門詞條

聯絡我們