编辑推荐
市面上的某些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语言的基本数据处理、分析和可视化,并为后续更复杂的学习和应用打下坚实的基础。