R語言入門經典 | 被動收入的投資秘訣 - 2024年5月

R語言入門經典

作者:(英)安迪·尼古拉斯等
出版社:人民郵電
出版日期:2018年02月01日
ISBN:9787115476296
語言:繁體中文

本書作為R語言的學習指南,詳細講解了R語言的基本概念和編程技巧。本書從基礎的知識開始,由淺入深地介紹R的基本概念和重要特性,並用大量的示例和圖形進行演示和說明,旨在讓讀者在掌握R語言的同時,能養成良好的編程習慣,寫出專業、高效的代碼。本書共24章,其內容涵蓋了R語言的社區和環境介紹;R語言的各種數據結構(單模式/多模式數據結構,日期、時間和因子);包括各種常用函數、實用函數和應 用函數在內的R語言函數;如何在R中進行文本的導入和導出,如何操控和轉換數據,以及在R中高效處理數據的方法;如何可視化數據(涵蓋了三個基本圖形系統、ggplot2圖形系統和Lattice圖形系統);如何用R構建線性模型、廣義線性模型和非線性模型,以及面向對象的思想;如何進行R代碼提速(包 括代碼的性能分析和提速方法);如何構建R包和擴展R包;如何編寫R類,其中會涉及R中的面向對象編程系統(S3、S4、引用類等);如何創建動態報告和 如何用Shiny創建網絡應用程序。本書附錄還介紹了R、R tools和R Studio的具體安裝步驟。《R語言入門經典》涵蓋了R語言的所有基礎知識,介紹了許多實用的編程技巧,既可作為R語言的入門教材,也可作為一本為尋求拓寬分析工具的專業統計學家、數據科學家、分析師量身打造的學習寶典。本書還可作為對R語言感興趣的讀者和開發人員的參考書籍。Andy Nicholls 在英國斯巴大學獲得數學碩士學位,在南安普頓大學獲得統計學應用科學碩士學位。Andy在2011年加入Mango Solution公司之前一直是一位制藥行業的資深統計學家。自從加入Mango Solution后,Andy舉辦了50多次R語言的現場培訓課程,參與了30多個R包的開發。現在,他負責管理Mango Solution的R顧問團隊,並一直定期為每季度的LondonR活動做貢獻。到目前為止,該活動的R用戶組參與人數居英國之首,有1000多個見面會成員。Andy與他美麗賢惠的妻子和可愛的兒子居住在英國的歷史名城巴斯附近。Richard Pugh 在巴斯大學獲得數學學位。Richard在制藥行業作為統計學家從事統計相關工作多年,后來加入了Insightful公司(開發了S-PLUS)的售前顧問團隊。Richard在Insightful公司的工作包括舉辦各種活動,給許多行業的藍籌客戶提供相關的培訓和咨詢服務。Richard在2002年作為聯合創始人創建了Mango Solution,領導公司中R和其他分析軟件的各種項目開發和技術研發。Richard現在是Mango公司的首席數據科學家,定期在數據科學會議和R活動中發言。Richard與他的妻子和兩個孩子居住在英國威爾特郡西部的Bradford on Avon鎮,大部分「業余時間」都在修整自己的房子。Aimee Gott 是蘭卡斯特大學的統計學博士,在本校獲得了本科和碩士學位。作為培訓領導,Aimee為Mango公司舉辦了200多天的培訓。她在歐洲和美國舉辦了多次全面介紹R語言的現場培訓,而且還包括許多短期研討會和在線研討會。Aimee負責監督Mango公司跨數據科學領域方面的培訓課程開發,並定期參加R用戶組和見面會。在業余時里,Aimee喜歡學習各種歐洲語言,並用攝影記錄她的旅行。

第1章 R語言社區 11.1 R語言簡史 11.1.1 S語言的誕生 11.1.2 R語言的誕生 21.2 R語言社區 31.2.1 郵件列表 31.2.2 R語言手冊 41.2.3 在線資源 41.2.4 R語言聯盟 41.2.5 用戶活動 51.3 R語言的開發 51.4 本章小結 61.5 本章答疑 61.6 課后研習 71.7 補充練習 7第2章 R語言環境 82.1 集成開發環境 82.1.1 R GUI 82.1.2 RStudio IDE 92.1.3 其他開發環境 102.2 R語法 102.2.1 控制台 102.2.2 腳本 112.3 R對象 122.3.1 R包 122.3.2 搜索路徑 122.3.3 列出對象 132.3.4 R的工作空間 142.4 使用R包 162.4.1 查找合適的包 172.4.2 安裝R包 172.4.3 載入R包 192.5 內部幫助 202.6 本章小結 212.7 本章答疑 212.8 課后研習 222.9 補充練習 23第3章 單模式數據結構 243.1 R的數據類型 243.2 向量、矩陣和數組 253.3 向量 253.3.1 創建向量 263.3.2 向量屬性 303.3.3 索引向量 323.4 矩陣 363.4.1 創建矩陣 373.4.2 矩陣屬性 393.4.3 索引矩陣 413.5 數組 443.5.1 創建數組 443.5.2 數組屬性 453.5.3 索引數組 453.6 單模式數據對象之間的關系 463.7 本章小結 473.8 本章答疑 473.9 課后研習 483.10 補充練習 49第4章 多模式數據結構 504.1 多模式結構 504.2 列表 514.2.1 列表是什麼 514.2.2 創建空列表 524.2.3 創建非空列表 524.2.4 創建有元素名的列表 534.2.5 創建列表:總結 534.2.6 列表屬性 544.2.7 索引列表 554.2.8 索引列表的子集 554.2.9 引用列表的元素 584.2.10 添加列表元素 604.2.11 列表語法總結 614.2.12 為何要學習列表 634.3 數據框 664.3.1 創建數據框 664.3.2 查詢數據框的屬性 674.3.3 選取數據框的列 674.3.4 添加數據框的列 674.3.5 索引數據框的列 684.3.6 作為矩陣引用 694.3.7 索引數據框總結 714.4 探索數據 714.4.1 數據的頂部和底部 724.4.2 數據視圖 724.4.3 匯總數據 744.4.4 可視化數據 744.5 本章小結 754.6 本章答疑 754.7 課后研習 774.8 補充練習 78第5章 日期、時間和因子 805.1 處理日期和時間 805.1.1 創建日期對象 805.1.2 創建包含時間的對象 815.1.3 操控日期和時間 825.2 lubridate包 835.3 處理分類數據 845.3.1 創建因子 845.3.2 管理因子的水平 865.3.3 創建連續數據的因子 865.4 本章小結 875.5 本章答疑 885.6 課后研習 885.7 補充練習 89第6章 常用R函數 906.1 R函數的用法 906.2 處理數值數據的函數 916.2.1 數學函數和運算符 916.2.2 統計匯總函數 926.2.3 模擬和統計分布 936.3 處理邏輯數據的函數 946.4 處理缺失數據的函數 956.5 處理字符數據的函數 966.5.1 處理簡單的字符 966.5.2 查找和替換 976.6 本章小結 986.7 本章答疑 986.8 課后研習 986.9 補充練習 99第7章 編寫函數:* 一部分 1007.1 為何要學習函數 1007.2 創建簡單的函數 1017.2.1 命名函數 1027.2.2 定義函數的參數 1037.2.3 函數作用域規則 1047.2.4 返回對象 1047.3 If/Else結構 1067.3.1 一個簡單的R示例 1077.3.2 嵌套語句 1087.3.3 使用一個條件 1087.3.4 多個測試值 1097.3.5 匯總成一個邏輯值 1097.3.6 簡化邏輯輸入 1107.3.7 反轉邏輯值 1117.3.8 混合條件 1127.3.9 控制與/或語句 1127.3.10 提前返回 1137.3.11 示例 1147.4 本章小結 1157.5 本章答疑 1157.6 課后研習 1167.7 補充練習 117第8章 編寫函數:* 二部分 1198.1 錯誤和警告 1198.1.1 錯誤消息 1208.1.2 警告消息 1218.2 檢查輸入 1228.3 省略號 1248.3.1 使用省略號 1258.3.2 用省略號傳遞圖形參數 1258.4 檢查多值輸入 1288.5 使用輸入定義 1308.6 本章小結 1338.7 本章答疑 1338.8 課后研習 1348.9 補充練習 135第9章 循環和匯總 1369.1 重復的任務 1369.1.1 循環 1369.1.2 for 循環 1379.1.3 while循環 1429.2 「應用」函數家族 1439.3 apply()函數 1449.3.1 MARGIN 1449.3.2 簡單的apply()用例 1459.3.3 使用多個MARGIN 1469.3.4 更高維結構使用apply() 1479.3.5 給「待應用」函數傳遞其他參數 1489.3.6 在自定義函數中使用apply() 1509.3.7 給函數傳遞額外參數 1519.3.8 應用於數據框 1529.4 lapply()函數 1539.4.1 split()函數 1549.4.2 分割數據框 1559.4.3 用lapply()函數處理向量 1579.4.4 「應用」輸入的次序 1589.4.5 用lapply()函數處理數據框 1609.5 sapply()函數 1619.5.1 從sapply()返回 1629.5.2 為何要使用sapply() 1649.6 tapply()函數 1659.6.1 多個分組變量 1659.6.2 多值返回 1669.6.3 從tapply()返回值 1689.7 本章小結 1699.8 本章答疑 1699.9 課后研習 1709.10 補充練習 171第10章 導入和導出 17210.1 處理文本文件 17210.1.1 讀入文本文件 17310.1.2 讀入CSV文件 17410.1.3 導出文本文件 17510.1.4 更快導入和導出 17510.1.5 高效數據存儲 17510.1.6 所有權和其他格式 17610.2 關系數據庫 17710.2.1 RODBC 17710.2.2 DBI 17810.3 操作Microsoft Excel 17910.4 本章小結 18310.5 本章答疑 18310.6 課后研習 18410.7 補充練習 184第11章 數據操控和轉換 18611.1 排序 18611.1.1 數據框排序 18711.1.2 降序排列 18711.2 附加 18811.3 合並 18811.3.1 合並示例 18911.3.2 缺失值 19011.4 重復值 19111.5 重組 19211.5.1 用reshape進行重組 19211.5.2 融合 19311.5.3 重鑄 19411.5.4 用tidyr進行重組 19511.6 數據整合 19711.6.1 使用「for」循環 19711.6.2 使用「應用」函數 19811.6.3 aggregate()函數 19911.6.4 使用帶公式的aggregate() 19911.6.5 根據指 定列使用aggregate() 20111.6.6 計算baseline的差值 20311.7 本章小結 20411.8 本章答疑 20411.9 課后研習 20511.10 補充練習 205第12章 高效數據處理 20612.1 dplyr:處理數據的新方式 20612.1.1 創建dplyr(tbl_df)對象 20712.1.2 排序 20812.1.3 訪問子集 20812.1.4 添加新列 21012.1.5 合並 21112.1.6 整合 21212.1.7 管道操作符 21512.2 用data.table高效處理數據 21612.2.1 創建data.table 21612.2.2 設置key 21712.2.3 取子集 21712.2.4 添加新行和新列 21912.2.5 合並 22112.2.6 整合 22212.2.7 處理超大數據集的其他包 22312.3 本章小結 22412.4 本章答疑 22412.5 課后研習 22412.6 補充練習 225第13章 圖形 22613.1 圖形設備和顏色 22613.1.1 設備 22613.1.2 顏色 22713.2 高 級圖形函數 22713.2.1 單變量圖形函數 22813.2.2 plot()函數 23013.2.3 圖形屬性 23113.3 初級圖形函數 23513.3.1 點和線 23513.3.2 文本 23613.3.3 圖例 23713.3.4 其他初級函數 23913.4 圖形參數 23913.5 控制布局 24013.5.1 網格布局 24013.5.2 layout()函數 24113.6 本章小結 24213.7 本章答疑 24213.8 課后研習 24313.9 補充練習 244第14章 ggplot2圖形包 24514.1 ggplot2的哲學 24514.2 快速繪圖和基本控制 24614.2.1 使用qplot() 24614.2.2 標題和軸 24714.2.3 使用圖層 24714.2.4 把圖形作為對象 24814.3 更改繪制類型 24914.3.1 繪制類型 24914.3.2 組合繪制類型 25114.4 圖形屬性 25114.4.1 控制圖形屬性 25214.4.2 標度和圖例 25414.4.3 處理分組數據 25614.5 面板(分面) 25714.5.1 facet_grid()的用法 25814.5.2 facet_wrap()的用法 25914.5.3 從qplot()中進行分面 26014.6 定制繪圖 26014.6.1 ggplot() 26014.6.2 坐標系 26414.7 主題和布局 26514.7.1 調整單個繪圖 26514.7.2 全局主題 26614.7.3 圖例布局 26614.8 ggvis的演變 26714.9 本章小結 26714.10 本章答疑 26814.11 課后研習 26814.12 補充練習 269第15章 lattice圖形 27015.1 格子圖形的歷史 27015.2 lattice包 27115.3 創建簡單的lattice圖形 27115.3.1 lattice圖形類型 27215.3.2 繪制數據的子集 27715.4 圖形選項 27815.4.1 標題和軸 27815.4.2 繪制類型和格式 27915.5 多變量 28015.6 數據的分組 28115.7 使用面板 28215.7.1 控制條頭 28315.7.2 多個「By」變量 28415.7.3 面板函數 28515.8 控制樣式 29015.8.1 預覽樣式 29115.8.2 創建主題 29215.8.3 使用主題 29315.9 本章小結 29415.10 本章答疑 29415.11 課后研習 29515.12 補充練習 295第16章 R模型和面向對象 29616.1 R中的統計模型 29616.2 簡單的線性模型 29616.3 在R中評估模型 29816.3.1 模型匯總 29816.3.2 模型診斷圖 29916.3.3 提取模型元素 30016.3.4 作為列表對象的模型 30216.3.5 在繪圖中添加模型線 30416.3.6 模型預測 30516.4 多元線性回歸 30616.4.1 更新模型 30616.4.2 比較嵌套模型 30716.5 交互項 30916.6 因子自變量 31116.7 變量轉換 31416.8 R和面向對象 31616.8.1 面向對象 31616.8.2 線性模型方法 31716.9 本章小結 31816.10 本章答疑 31816.11 課后研習 31916.12 補充練習 319第17章 常見R模型 32017.1 廣義線性模型 32017.1.1 GLM定義 32117.1.2 擬合GLM模型 32117.1.3 擬合高斯模型 32217.1.4 glm對象 32317.1.5 Logistic回歸 32517.1.6 泊松回歸 32717.1.7 GLM擴展 32917.2 非線性模型 32917.2.1 非線性回歸 33017.2.2 非線性模型擴展 33517.3 生存分析 33617.3.1 ovarian數據框 33617.3.2 刪失數據 33617.3.3 估計生存函數 33717.3.4 比例風險 34117.3.5 生存模型擴展 34417.4 時間序列分析 34417.4.1 時間序列對象 34417.4.2 分解時間序列 34617.4.3 平滑 34717.4.4 自相關 34917.4.5 擬合ARIMA模型 34917.5 本章小結 35217.6 本章答疑 35217.7 課后研習 35217.8 補充練習 353第18章 代碼提速 35418.1 確定效率 35418.1.1 性能分析 35518.1.2 標准分析工具 35518.2 初始化 35618.3 向量化 35718.3.1 什麼是向量化 35818.3.2 怎樣編碼可以向量化 35818.4 使用替換函數 36018.5 管理內存使用 36018.6 集成C++ 36118.6.1 C++和Rcpp的使用時機 36118.6.2 基本函數 36218.6.3 在C++中使用R函數 36418.7 本章小結 36418.8 本章答疑 36518.9 課后研習 36518.10 補充練習 366第19章 構建包 36719.1 為什麼要構建R包 36719.2 R包的結構 36819.2.1 創建包的結構 36819.2.2 DESCRIPTION文件 36919.2.3 NAMESPACE文件 37019.2.4 R目錄 37019.2.5 man目錄 37119.3 代碼質量 37119.4 用roxygen2自動創建文檔 37219.4.1 函數的roxygen注釋塊 37219.4.2 撰寫包的文檔 37419.4.3 創建和更新幫助頁面 37419.5 用devtools構建包 37519.5.1 檢查 37519.5.2 構建 37719.5.3 安裝 37719.6 本章小結 37819.7 本章答疑 37819.8 課后研習 37819.9 補充練習 379第20章 構建高 級包 38020.1 擴展R包 38020.2 開發測試框架 38120.2.1 testthat介紹 38120.2.2 將測試合並進包中 38320.3 在包中包含數據 38420.4 包含用戶指南 38620.4.1 在包中包含使用指南 38620.4.2 撰寫使用指南 38720.5 用Rcpp編碼 38920.6 本章小結 39020.7 本章答疑 39020.8 課后研習 39120.9 補充練習 391第21章 編寫R類 39321.1 什麼是類 39321.1.1 R中的面向對象 39421.1.2 為何要用面向對象 39421.1.3 為何要使用S3 39621.2 創建新的S3類 39621.3 泛型函數和方法 39821.3.1 為算術操作符定義方法 39921.3.2 列表和屬性 40021.3.3 創建新的泛型 40121.4 在S3中繼承 40221.5 創建S3文檔 40321.6 S3的局限性 40321.7 本章小結 40421.8 本章答疑 40421.9 課后研習 40421.10 補充練習 405第22章 正式的類系統 40622.1 S4 40622.1.1 使用S4類 40722.1.2 定義S4類 40722.1.3 方法 41022.1.4 定義新的泛型函數 41122.1.5 多重分派 41222.1.6 繼承 41322.1.7 創建S4的文檔 41422.2 引用類 41522.2.1 創建新的引用類 41522.2.2 定義方法 41722.2.3 復制引用類的對象 41922.2.4 創建引用類的文檔 42022.3 R6類 42122.3.1 公有成員和私有成員 42122.3.2 R6示例 42122.4 其他類系統 42222.5 本章小結 42222.6 本章答疑 42322.7 課后研習 42322.8 補充練習 424第23章 動態報告 42523.1 什麼是動態報告 42523.2 knitr包簡介 42623.3 用RMarkdown生成簡單的報告 42623.3.1 RMarkdown文檔基礎 42623.3.2 創建HTML文件 42723.3.3 包含R的代碼和輸出 42823.4 用LaTeX生成報告 43023.4.1 LaTeX文檔基礎 43023.4.2 在LaTeX文檔中包含代碼 43123.5 本章小結 43323.6 本章答疑 43323.7 課后研習 43323.8 補充練習 434第 24章 用Shiny創建網絡應用程序 43524.1 簡單的Shiny應用程序 43524.1.1 Shiny應用程序的結構 43524.1.2 ui組件 43624.1.3 server組件 43724.2 響應式函數 43924.2.1 為何需要響應式函數 43924.2.2 創建一個簡單的響應式函數 44024.3 交互式文檔 44124.4 共享Shiny應用程序 44224.5 本章小結 44224.6 本章答疑 44324.7 課后研習 44324.8 補充練習 444附錄A 安裝 445


相關書籍