《学习R》出色地明确了自己的目标:引导读者掌握R,并为他们提供实践的机会,该书分为两部分,前半部分毫无保留地深入到R的各种技术细节,用简明扼要的方式介绍了一组不同的数据类型和概念,如向量、矩阵和数组的介绍,以及分支和循环的概念 – 这就像为读者提供了R的一整套工具箱,然后,后半部分则更注重实践,展示了从输入数据到发布结果的标准数据分析流程,这就好像让读者看到了用刚刚工具箱中的工具,如何将一堆散乱的木头雕刻成完美的家具,除了技术内容之外,书中还贴心地提供了各种IDE的选项,并详细介绍了如何安装R和获取R的帮助,这就像是给读者的R学习之旅提供了一张详细的地图,整个书籍让人感觉就像是一位优秀的导师,既能详细讲解各种技术知识,又能展示如何在实践中应用这些知识,每一章结束后的知识测试,更是如同一次次实战演练,挑战你所学并督促你更深入地理解和应用这些知识,总的来说,无论是新手还是已有一定基础的读者,都可以从《学习R》中收获丰富的知识和实践经验。
学习R分为上下两部分,旨在指导你如何使用R,并提供练习的机会。上半部分主要介绍R的技术细节和使用技巧。每章都简要介绍了一组不同的数据类型(例如第4章介绍向量、矩阵和数组)或概念(例如第8章介绍分支和循环)。下半部分更侧重实践,展示了从输入数据到发布结果这一标准的数据分析流程。
目录
- 译者序 XII
- 前言 XIII
- 第一部分 R语言
- 第1章 简介 2
- 1.1 本章目标 2
- 1.2 R是什么 2
- 1.3 安装R 3
- 1.4 选择一个IDE 4
- 1.4.1 Emacs+ESS 4
- 1.4.2 Eclipse/Architect 4
- 1.4.3 RStudio 5
- 1.4.4 Revolution-R 5
- 1.4.5 Live-R 5
- 1.4.6 其他IDE和编辑器 6
- 1.5 你的第一个程序 6
- 1.6 如何从R中获得帮助 7
- 1.7 安装其他相关软件 9
- 1.8 小结 9
- 1.9 知识测试:问题 10
- 1.10 知识测试:练习 10
- 第2章 科学计算器 11
- 2.1 本章目标 11
- 2.2 数学运算符和向量 11
- 2.3 变量赋值 15
- 2.4 特殊数字 17
- 2.5 逻辑向量 18
- 2.6 小结 20
- 2.7 知识测试:问题 20
- 2.8 知识测试:练习 20
- 第3章 检查变量和工作区 22
- 3.1 本章目标 22
- 3.2 类 22
- 3.3 不同类型的数字 23
- 3.4 其他通用类 24
- 3.5 检查和更改类 26
- 3.6 检查变量 29
- 3.7 工作区 32
- 3.8 小结 33
- 3.9 知识测试:问题 33
- 3.10 知识测试:练习 34
- 第4章 向量、矩阵和数组 35
- 4.1 本章目标 35
- 4.2 向量 35
- 4.2.1 序列 37
- 4.2.2 长度 38
- 4.2.3 命名 39
- 4.2.4 索引向量 39
- 4.2.5 向量循环和重复 41
- 4.3 矩阵和数组 43
- 4.3.1 创建数组和矩阵 43
- 4.3.2 行、列和维度 45
- 4.3.3 行名、列名和维度名 46
- 4.3.4 索引数组 47
- 4.3.5 合并矩阵 47
- 4.3.6 数组算术 48
- 4.4 小结 50
- 4.5 知识测试:问题 50
- 4.6 知识测试:练习 51
- 第5章 列表和数据框 52
- 5.1 本章目标 52
- 5.2 列表 52
- 5.2.1 创建列表 52
- 5.2.2 原子变量和递归变量 54
- 5.2.3 列表的维度和算术运算 55
- 5.2.4 索引列表 56
- 5.2.5 向量和列表之间的转换 58
- 5.2.6 组合列表 60
- 5.3 NULL 61
- 5.4 成对列表 64
- 5.5 数据框 65
- 5.5.1 创建数据框 65
- 5.5.2 索引数据框 68
- 5.5.3 基本数据框操作 69
- 5.6 小结 71
- 5.7 知识测试:问题 71
- 5.8 知识测试:练习 72
- 第6章 环境和函数 73
- 6.1 本章目标 73
- 6.2 环境 73
- 6.3 函数 76
- 6.3.1 创建和调用函数 76
- 6.3.2 向其他函数传递和接收函数 80
- 6.3.3 变量的作用域 82
- 6.4 小结 84
- 6.5 知识测试:问题 84
- 6.6 知识测试:练习 84
- 第7章 字符串和因子 86
- 7.1 本章目标 86
- 7.2 字符串 86
- 7.2.1 创建和打印字符串 87
- 7.2.2 格式化数字 88
- 7.2.3 特殊字符 90
- 7.2.4 更改大小写 91
- 7.2.5 截取字符串 91
- 7.2.6 分割字符串 92
- 7.2.7 文件路径 93
- 7.3 因子 94
- 7.3.1 创建因子 94
- 7.3.2 更改因子水平 96
- 7.3.3 去掉因子水平 96
- 7.3.4 有序因子 97
- 7.3.5 将连续变量转换为类别 98
- 7.3.6 将类别变量转换为连续变量 99
- 7.3.7 生成因子水平 100
- 7.3.8 合并因子 100
- 7.4 小结 101
- 7.5 知识测试:问题 101
- 7.6 知识测试:练习 101
- 第8章 流程控制和循环 103
- 8.1 本章目标 103
- 8.2 流程控制 103
- 8.2.1 if和else 103
- 8.2.2 矢量化的if 105
- 8.2.3 多个分支 106
- 8.3 循环 108
- 8.3.1 重复循环 108
- 8.3.2 while循环 110
- 8.3.3 for循环 111
- 8.4 小结 113
- 8.5 知识测试:问题 113
- 8.6 知识测试:练习 113
- 第9章 高级循环 115
- 9.1 本章目标 115
- 9.2 replication 115
- 9.3 遍历列表 116
- 9.4 遍历数组 122
- 9.5 多个输入的应用函数 124
- 9.6 拆分-应用-合并(Split-Apply-Combine) 126
- 9.7 plyr包 127
- 9.8 小结 130
- 9.9 知识测验:问题 130
- 9.10 知识测试:练习 131
- 第10章 包 133
- 10.1 本章目标 133
- 10.2 加载包 133
- 10.2.1 搜索路径 135
- 10.2.2 库和已安装的包 136
- 10.3 安装包 137
- 10.4 维护包 139
- 10.5 小结 139
- 10.6 知识测试:问题 140
- 10.7 知识测试:练习 140
- 第11章 日期和时间 141
- 11.1 本章目标 141
- 11.2 日期和时间类 141
- 11.2.1 POSIX日期和时间 142
- 11.2.2 Date类 143
- 11.2.3 其他日期类 144
- 11.3 日期与字符串的相互转换 144
- 11.3.1 解析日期 144
- 11.3.2 格式化日期 145
- 11.4 时区 145
- 11.5 日期和时间的算术运算 147
- 11.6 lubridate 149
- 11.7 小结 153
- 11.8 知识测试:问题 153
- 11.9 知识测试:练习 153
- 第二部分 数据分析工作流
- 第12章 获取数据 156
- 12.1 本章目标 156
- 12.2 内置的数据集 156
- 12.3 读取文本文件 157
- 12.3.1 CSV和制表符分隔(Tab-Delimited)文件 157
- 12.3.2 非结构化文本文件 161
- 12.3.3 XML和HTML文件 161
- 12.3.4 JSON和YAML文件 163
- 12.4 读取二进制文件 165
- 12.4.1 读取Excel文件 165
- 12.4.2 读取SAS、Stata、SPSS和MATLAB文件 167
- 12.4.3 读取其他文件类型 167
- 12.5 Web数据 168
- 12.5.1 拥有API的网站 168
- 12.5.2 抓取网页 169
- 12.6 访问数据库 171
- 12.7 小结 174
- 12.8 知识测试:问题 174
- 12.9 知识测试:练习 174
- 第13章 数据清理和转换 175
- 13.1 本章目标 175
- 13.2 清理字符串 175
- 13.3 操作数据框 180
- 13.3.1 添加和替换列 180
- 13.3.2 处理缺失值 181
- 13.3.3 在宽和长表格之间进行转换 182
- 13.3.4 使用SQL 183
- 13.4 排序 184
- 13.5 函数式编程 185
- 13.6 小结 188
- 13.7 知识测试:问题 188
- 13.8 知识测试:练习 189
- 第14章 探索和可视化 190
- 14.1 本章目标 190
- 14.2 汇总统计 190
- 14.3 三种绘图系统 194
- 14.4 散点图 195
- 14.4.1 第一种方法:base绘图法 195
- 14.4.2 第二种方法:lattice图形系统 200
- 14.4.3 第三种方法:ggplot2图形系统 207
- 14.5 线图 212
- 14.6 直方图 220
- 14.7 箱线图 232
- 14.8 条形图 236
- 14.9 其他的绘图包和系统 242
- 14.10 小结 243
- 14.11 知识测试:问题 243
- 14.12 知识测试:练习 244
- 第15章 分布与建模 245
- 15.1 本章目标 245
- 15.2 随机数 246
- 15.2.1 示例函数 246
- 15.2.2 从分布中抽样 247
- 15.3 分布 248
- 15.4 公式 248
- 15.5 第一个模型:线性回归 250
- 15.5.1 比较和更新模型 252
- 15.5.2 绘图和模型检查 257
- 15.6 其他模型类型 261
- 15.7 小结 262
- 15.8 知识测试:问题 263
- 15.9 知识测试:练习 263
- 第16章 程序设计 264
- 16.1 本章目标 264
- 16.2 信息、警告和错误 264
- 16.3 错误处理 267
- 16.4 调试 270
- 16.5 测试 273
- 16.5.1 RUnit 273
- 16.5.2 testthat 276
- 16.6 魔法 277
- 16.6.1 将字符串转换成代码 277
- 16.6.2 把代码转换成字符串 279
- 16.7 面向对象编程 280
- 16.7.1 S3类 281
- 16.7.2 引用类 282
- 16.8 小结 287
- 16.9 知识测试:问题 287
- 16.10 知识测试:练习 288
- 第17章 制作程序包 289
- 17.1 本章目标 289
- 17.2 为什么要创建软件包 289
- 17.3 先决条件 289
- 17.4 包目录结构 290
- 17.5 你的第一个包 291
- 17.6 为包撰写文档 293
- 17.7 检查和构建包 296
- 17.8 包的维护 297
- 17.9 小结 298
- 17.10 知识测试:问题 299
- 17.11 知识测试:练习 299
- 第三部分 附录
- 附录A 变量的属性 302
- 附录B R中其他可做的事情 305
- 附录C 问题答案 307
- 附录D 练习答案 315
- 参考文献 339
- 关于封面 341