編輯推薦
市麵上的某些R入門手冊過於復雜,讓人誤以認為學習R是一項“艱巨的任務”。《R語言初學指南》將從基礎講起,不要求讀者具有計算機編程背景,不要求讀者預先掌握統計學和微積分,讀者隻需具備一定的高中代數知識,就能夠理解書中用到的數學知識。
通過《R語言初學指南》,讀者可以掌握一係列R技術,並可使用這些技術來完成基礎科學和應用數學課程上的大多數計算和繪圖項目。
在學完每章之後,《R語言初學指南》通過一個或幾個計算任務來讓讀者檢查自己所學的知識。這些任務不僅僅是練習,它們還是一些微型項目,不論是在創造力上還是在解決問題的能力上,都可以幫助讀者建立起使用R的思維模式。
內容簡介
R是一個開源、跨平颱的科學計算和統計分析軟件包,它提供瞭豐富多樣的統計功能和強大的數據分析功能,在大數據和機器學習快速發展的今天,R已經成為數據分析領域炙手可熱的通用語言。
《R語言初學指南》的內容涵蓋R的基礎知識,包括創建、運行以及調試R腳本;用戶自定義R函數;用R繪製基本圖形;R的循環語句和邏輯控製語句;二次函數、三角函數、指數函數、對數函數以及如何用R繪製這些函數圖形;矩陣的基本運算和綫性方程組的求解;概率分布與模擬;數據的擬和等。這些內容涉及多個領域的應用,有趣、生動、實用。
《R語言初學指南》通過大量與科學相關的應用,例如生態學、天文學、化學等學科的例子,深入淺齣地介紹瞭R的基本使用方法,以及建立應用模型和求解這些模型的方法。不誇張地講,本書是R入門的不二選擇,讀者隻要具備高中代數知識,就能順利讀完本書。
作者簡介
Brian Dennis是愛達荷大學魚類與野生動物科學係、統計科學係聯閤任命的教授。他在賓夕法尼亞州立大學獲得統計學碩士學位和生態學博士學位。他曾撰寫超過70篇科學論文,這些論文涉及統計學和數學建模在生態學和自然資源管理中的應用。在十幾年的教學和科研工作中,他一直使用R。
譯者簡介:
高敬雅,首都經濟貿易大學統計學院碩士畢業,目前為北京師範大學-香港浸會大學聯閤國際學院統計學教師,主要研究興趣為金融時間序列分析、多元統計分析及臨床實驗設計等。在校期間多次參與北京市自然科學基金項目課題,亦曾多次獲得國傢和省部級數學建模競賽奬勵和youxiu論文奬。
劉波,重慶大學計算機學院博士畢業,目前為重慶工商大學計算科學與信息工程學院教師,主要從事機器學習、計算機視覺、優化技術以及Spark平颱下分布式計算的研究,同時愛好Linux平颱的編程和Oracle數據庫的開發。現已發錶論文10餘篇,翻譯3本計算機相關書籍,編寫Oracle教材1本,承擔國傢自然科學青年基金研究項目1項,承擔重慶市科委和重慶市教委研究項目3項。
內頁插圖
目錄
第1章 介紹:開始使用R 1
1.1 R教程 1
1.2 嚮量 3
1.3 圖形 6
1.4 實際案例 7
1.5 本章小結 10
1.6 計算任務 12
1.7 參考文獻 15
第2章 R腳本 17
2.1 創建與保存R腳本 17
2.2 運行R腳本 18
2.3 找到R腳本中的錯誤 19
2.4 利用注釋使腳本明瞭 21
2.5 實際案例 22
2.6 本章小結 25
2.7 計算任務 30
2.8 參考文獻 33
第3章 函數 35
3.1 在R中建立新函數 37
3.2 關於R中自定義函數的更多內容 38
3.3 實際案例 39
3.4 本章小結 41
3.5 計算任務 42
3.6 補充說明:案例短評 43
3.7 參考文獻 44
第4章 基本繪圖 45
4.1 實際案例 45
4.2 單變量繪圖 49
4.2.1 帶狀圖 49
4.2.2 直方圖 49
4.2.3 莖葉圖 51
4.2.4 箱綫圖 51
4.2.5 時序圖 52
4.3 雙變量繪圖 53
4.3.1 散點圖 53
4.3.2 並列箱綫圖 55
4.3.3 條形圖與餅圖 55
4.3.4 條形圖與餅圖的數據展示 56
4.4 本章小結 59
4.5 計算任務 61
4.6 補充說明 62
第5章 數據輸入與輸齣 63
5.1 R中的數據框 66
5.2 本章小結 71
5.3 計算任務 73
5.4 補充說明 74
第6章 循環 75
6.1 建立for循環 76
6.2 檢查循環 77
6.3 好吧,斐波那契先生……那又怎樣呢? 77
6.4 實際案例 78
6.5 本章小結 82
6.6 計算任務 82
6.7 參考文獻 84
第7章 邏輯與控製 85
7.1 邏輯比較運算及邏輯嚮量 85
7.2 布爾運算 86
7.3 缺失數據 88
7.4 索引及其相關內容 89
7.5 條件語句 91
7.6 實際案例 95
7.7 本章小結 100
7.8 計算任務 103
7.9 補充說明 103
7.10 參考文獻 104
第8章 二次函數 105
8.1 實際案例 110
8.2 本章小結 113
8.3 計算任務 116
8.4 參考文獻 116
第9章 三角函數 117
9.1 直角三角形 117
9.2 三角函數 118
9.3 直角三角形,圓形與弧 119
9.4 三角函數的特性 123
9.5 極坐標 124
9.6 距離的三角測量 126
9.7 實際案例 127
9.7.1 太陽係附近恒星的距離 127
9.7.2 拋體運動 127
9.7.3 天體軌道 129
9.8 本章小結 130
9.9 計算任務 132
9.10 補充說明 132
第10章 指數函數與對數函數 133
10.1 實數指數冪 133
10.2 特殊的數字e 135
10.3 數字e的應用 137
10.4 指數函數 138
10.5 指數增長 139
10.6 對數函數 140
10.7 對數尺度 143
10.7.1 裏氏震級 143
10.7.2 pH值 143
10.7.3 恒星等級 144
10.8 實際案例 145
10.8.1 放射性衰變 145
10.8.2 種群增長的極限 147
10.8.3 石油頂峰 150
10.9 本章小結 151
10.10 計算與代數任務 153
10.11 參考文獻 156
第11章 矩陣運算 157
11.1 嚮量相乘的另一種方式 157
11.2 矩陣乘法 158
11.3 矩陣的加減運算 161
11.4 將數據文件讀取為矩陣 162
11.5 實際案例 162
11.6 本章小結 165
11.7 計算任務 166
11.8 補充說明 167
11.9 參考文獻 167
第12章 綫性方程組 169
12.1 矩陣錶示 169
12.2 矩陣的逆 170
12.3 R中的矩陣求逆和方程組的解 172
12.4 現實中的例子 174
12.4.1 老忠實泉 174
12.4.2 一個不遠的星係 180
12.5 本章小結 183
12.6 計算任務 184
12.7 補充說明 186
12.8 參考文獻 187
第13章 高級繪圖 189
13.1 繪製二維圖形 189
13.2 符號、綫與坐標軸風格的選項 190
13.2.1 數據符號類型 190
13.2.2 連接綫類型 190
13.2.3 麯綫類型 191
13.2.4 坐標軸的限製 191
13.2.5 刻度綫 191
13.2.6 坐標軸標簽 191
13.2.7 不顯示坐標軸 191
13.2.8 符號與標簽的大小、綫與坐標軸的寬度 192
13.3 其他自定義功能 192
13.3.1 添加點 192
13.3.2 添加綫 192
13.3.3 增加文本 193
13.3.4 標題和副標題 194
13.3.5 圖例 194
13.3.6 新圖形窗口 194
13.3.7 全局性與局部性 195
13.4 多屏圖 195
13.5 三維圖 197
13.6 顔色 200
13.7 本章小結 201
13.8 計算任務 202
13.9 參考文獻 203
第14章 概率與模擬 205
14.1 隨機變量 205
14.2 概率 206
14.3 離散概率分布 208
14.4 連續概率分布 212
14.4.1 均勻分布 212
14.4.2 正態分布 214
14.5 實際案例 218
14.6 計算任務 223
14.7 補充說明 224
14.8 參考文獻 224
第15章 擬閤數據模型 225
15.1 隨機變量 225
15.2 多元預測變量 228
15.3 非綫性統計方法 230
15.4 本章小結 235
15.5 計算任務 239
15.6 補充說明 241
15.7 參考文獻 242
第16章 結論——你不需要成為一名火箭學傢 243
16.1 真實的太陽係的例子 243
16.2 問題 243
16.3 概念 244
16.4 速度的變化 245
16.5 移動地球 246
16.6 組織整理 247
16.7 計算地球軌跡的R腳本構思 247
16.8 R腳本 249
16.9 計算任務 251
16.10 補充說明 252
16.10.1 微積分和圓錐麯綫 252
16.10.2 Feynman最後的講座 252
16.10.3 三體問題 253
16.10.4 海王星 253
16.10.5 誤差的傳播 253
16.10.6 阿波菲斯 253
16.10.7 混亂的冥王星軌道 254
16.10.8 忽略質量 254
16.10.9 水星運動軌道和廣義相對論 254
16.10.10 測量單位 254
16.11 參考文獻 255
附錄A 安裝R 257
附錄B 獲得幫助 259
附錄C R的常用命令和選項 261
譯後記 273
前言/序言
《 R語言初學指南 》 內容簡介 在數據驅動的時代,掌握強大的數據分析工具至關重要。R語言,作為一款免費、開源的統計計算和圖形繪製軟件,以其海量的數據科學庫、靈活的編程範式以及活躍的社區支持,迅速成為全球數據科學傢、統計學傢、科研人員乃至各行各業數據愛好者的首選。 《R語言初學指南》並非一本包羅萬象的R語言百科全書,而是一本專為初學者量身打造的學習路徑圖。它旨在幫助那些對數據分析充滿興趣,但又對R語言感到陌生的讀者,係統地、循序漸進地掌握R語言的基礎知識和核心技能。本書不會深入探討高深的統計理論或復雜的機器學習算法,而是將重點放在構建堅實的基礎,讓讀者能夠自信地邁齣R語言學習的第一步,並為後續更深入的探索打下堅實的基礎。 本書內容結構與亮點: 本書以“由淺入深,循序漸進”為核心編排原則,將R語言的學習過程分解為若乾個易於理解的模塊。 第一部分: R語言的安裝與基礎環境搭建 認識R與RStudio: 在開始學習之前,首先需要瞭解R語言是什麼,它能做什麼,以及為什麼RStudio是R語言開發中不可或缺的集成開發環境(IDE)。我們會介紹R和RStudio各自的優勢,以及它們如何協同工作,為用戶提供一個高效、便捷的開發體驗。 安裝R與RStudio: 本章將提供清晰、詳細的安裝指南,覆蓋Windows、macOS和Linux等主流操作係統。我們會指導讀者完成R和RStudio的下載、安裝步驟,並進行基本的配置,確保讀者能夠順利搭建起自己的R語言開發環境。 RStudio的初體驗: 安裝完成後,我們將帶領讀者熟悉RStudio的界麵布局,包括代碼編輯器、控製颱、環境/曆史麵闆、文件/圖錶/包/幫助麵闆等。通過簡單的交互操作,讓讀者對RStudio的基本功能有一個直觀的認識。 第一個R程序: 學習任何一門編程語言,從編寫“Hello, World!”開始是必不可少的。本書將引導讀者編寫並運行第一個簡單的R程序,通過這個過程,讓讀者熟悉R的執行流程和基本的代碼輸入輸齣方式。 第二部分: R語言的基礎語法與數據類型 變量與賦值: 變量是程序設計的基本單元。本章將介紹R中變量的命名規則,以及如何使用賦值運算符(`<-` 和 `=`)將數據存儲在變量中。我們會通過生動的例子,幫助讀者理解變量在程序中的作用。 基本數據類型: R語言擁有多種內置數據類型,如數值型(numeric)、整型(integer)、邏輯型(logical)、字符型(character)、復數型(complex)和原始型(raw)。本章將逐一介紹這些數據類型,並演示如何創建和檢查它們,讓讀者瞭解不同數據類型在存儲和處理信息方麵的差異。 嚮量(Vector): 嚮量是R語言中最基本的數據結構之一,也是進行數據操作的基礎。本章將詳細講解如何創建嚮量、訪問嚮量中的元素、進行嚮量的算術運算以及嚮量的邏輯操作。我們會深入理解嚮量化(vectorization)的概念,這是R語言高效處理數據的重要特性。 矩陣(Matrix)與數組(Array): 當數據維度增加時,矩陣和數組就顯得尤為重要。本章將介紹如何創建和操作矩陣,包括矩陣的維度、索引、轉置、閤並等。在此基礎上,我們將擴展到多維數組的概念,幫助讀者處理更復雜的數據結構。 數據框(Data Frame): 數據框是R語言中處理錶格型數據的核心結構,其概念類似於Excel中的工作錶或數據庫中的錶。本章將是本書的重點之一,我們將詳細講解如何創建、讀取、選擇、修改和閤並數據框。讀者將學會如何處理現實世界中的結構化數據。 列錶(List): 列錶是一種靈活的數據結構,它可以包含不同類型的數據元素,包括嚮量、矩陣、其他列錶甚至函數。本章將介紹列錶的創建、訪問和操作,幫助讀者理解列錶在組織和存儲異構數據方麵的強大能力。 第三部分: R語言的數據導入與導齣 讀取CSV文件: CSV(Comma Separated Values)文件是最常見的數據交換格式之一。本章將重點介紹使用R內置函數(如`read.csv()`)或更強大的`readr`包來讀取CSV文件,並講解如何處理文件路徑、分隔符、文件頭等常見問題。 讀取Excel文件: 許多數據以Excel格式存儲。本章將介紹如何使用`readxl`包來讀取Excel文件,包括單工作錶和多工作錶的讀取,以及如何指定讀取的範圍。 讀取其他格式文件: 除瞭CSV和Excel,R還支持讀取JSON、XML、SAS、SPSS等多種格式的文件。本章將簡要介紹常用文件的讀取方法,為讀者提供更廣泛的數據源處理能力。 導齣數據: 將R中的數據保存到文件中是數據分析流程的重要環節。本章將講解如何將數據框、嚮量等R對象導齣為CSV、Excel等格式,並介紹導齣時的常用參數設置。 第四部分: R語言的基本數據操作與轉換 數據選擇與過濾: 從海量數據中提取所需信息是數據分析的第一步。本章將深入講解如何使用基礎R函數和`dplyr`包(tidyverse的核心)進行高效的數據選擇(按列)和過濾(按行),包括條件選擇、邏輯組閤等。 數據排序: 對數據進行排序可以幫助我們更好地理解數據的分布和趨勢。本章將介紹如何對數據框按照一個或多個列進行升序或降序排序。 數據轉換與創建新變量: 在分析過程中,我們常常需要根據現有變量創建新的變量。本章將演示如何進行各種數據轉換,例如計算、條件賦值、字符串處理等。 數據閤並與連接: 當我們需要整閤來自不同數據源的信息時,數據閤並(join)就變得至關重要。本章將詳細介紹使用`dplyr`包的各種連接操作(如內連接、左連接、右連接、全連接),幫助讀者理解如何高效地組閤數據集。 數據重塑: 有時候,數據的格式需要從“寬”變為“長”,或從“長”變為“寬”,以便進行特定的分析。本章將介紹如何使用`tidyr`包(tidyverse的另一個核心)進行數據重塑,包括`pivot_longer`和`pivot_wider`函數。 第五部分: R語言的基礎繪圖功能 認識圖形語言: 在R語言中,繪圖不僅僅是生成一張圖片,而是一種“圖形語言”,通過函數和參數的組閤來描述和構建圖形。本章將介紹R語言繪圖的基本原理。 基礎繪圖係統(Base Graphics): R語言內置瞭強大的基礎繪圖係統。本章將重點介紹如何使用基礎繪圖函數繪製散點圖、摺綫圖、柱狀圖、餅圖、箱綫圖等常見圖形。我們將詳細講解坐標軸、圖例、標題、顔色、形狀等圖形元素的自定義。 繪圖參數詳解: 深入理解繪圖函數的參數是掌握R語言繪圖的關鍵。本章將對常用的繪圖參數進行分類講解,幫助讀者靈活地控製圖形的每一個細節。 保存圖形: 學習如何將繪製好的圖形保存為各種格式(如PNG、JPEG、PDF)是數據分析結果展示的必備技能。 第六部分: 掌握tidyverse生態係統 tidyverse簡介: Tidyverse是一組為數據科學而設計的R包集閤,它提供瞭一套統一的語法和邏輯,使得數據處理和可視化更加簡潔高效。本章將介紹tidyverse的理念和核心組成部分。 dplyr:高效的數據操作: 我們將再次強調`dplyr`在數據篩選、排序、分組、匯總等操作上的強大之處,並通過更多示例來鞏固讀者的理解。 ggplot2:優雅的數據可視化: `ggplot2`是tidyverse中最受歡迎的包之一,它基於“圖形語法”,能夠創建齣美觀、信息豐富的統計圖形。本章將是本書的另一個重頭戲,我們將從基礎的幾何對象(geoms)、映射(aesthetics)和標度(scales)講起,逐步構建齣各種復雜的圖形,如散點圖、條形圖、綫圖、直方圖、箱綫圖等,並學習如何添加分麵、調整主題、修改坐標係等。 tidyr:整潔的數據: 迴顧並深化`tidyr`在數據整理、轉換方麵的應用。 第七部分: R語言的基本統計分析(選講) 描述性統計: 在深入分析之前,對數據進行描述性統計是必不可少的。本章將介紹如何計算均值、中位數、方差、標準差、分位數等常用統計量。 假設檢驗基礎(如t檢驗): 簡單介紹一個或兩個樣本的t檢驗,幫助讀者理解如何使用R進行基本的統計推斷。 相關性分析: 計算變量之間的相關係數,探索變量之間的綫性關係。 第八部分: R語言的學習資源與進階方嚮 R的幫助係統: 學習如何有效地使用R的幫助文檔(`?` 和 `??`)來查找信息,這是解決問題最直接有效的方法。 R的社區支持: 介紹R的官方論壇、Stack Overflow等社區資源,鼓勵讀者在遇到問題時積極尋求幫助和交流。 未來學習方嚮: 為讀者指明瞭進一步學習的方嚮,例如更高級的統計建模、機器學習、數據挖掘、Web應用開發(Shiny)、報告生成(R Markdown)等。 本書特色: 語言通俗易懂: 避免使用過多的專業術語,用最直白的語言解釋概念。 案例驅動: 每一個概念的講解都配以實際的、可運行的代碼示例,讓讀者在實踐中學習。 循序漸進: 內容組織邏輯清晰,從最基礎的安裝配置到基本數據處理,再到初步的統計分析和可視化。 注重實踐: 強調動手能力,鼓勵讀者跟著書本一起敲代碼、運行程序。 不求大而全,但求精而實: 聚焦於初學者最需要掌握的核心知識點,避免信息過載。 《R語言初學指南》旨在成為您R語言學習旅程中的一位得力助手。無論您是學生、研究人員,還是希望提升數據處理能力的職場人士,本書都將為您打開數據分析的大門,讓您自信地運用R語言探索數據的奧秘。讀完本書,您將能夠熟練地進行R語言的基本數據處理、分析和可視化,並為後續更復雜的學習和應用打下堅實的基礎。