《图灵程序设计丛书:学习R》讲解如何使用R语言及其软件环境分析数据,即使没有编程经验也能看懂。通过这本实用教程,你可以轻松掌握如何使用必要的R工具来分析数据,同时掌握相关数据类型和通用的编程概念。
《图灵程序设计丛书:学习R》后半部分会讲到数据分析的各种实际应用,涵盖导入数据和发布结果。另外,值得一提的是,本书每一章都会结合所讲内容提供精心编制的小测试和练习题,需要编写R代码完成,从而巩固所学的知识。
《图灵程序设计丛书:学习R》分为上下两部分,旨在指导你如何使用R,并提供练习的机会。上半部分主要介绍R的技术细节和使用技巧。每章都简要介绍了一组不同的数据类型(例如第4章介绍向量、矩阵和数组)或概念(例如第8章介绍分支和循环)。下半部分更侧重实践,展示了从输入数据到发布结果这一标准的数据分析流程。
即使你没有任何编程基础,也能顺利阅读《学习R》。
Richard Cotton,是一位通晓化学安全及健康的数据科学家,开发过很多能让非专业用户访问统计模型的工具。他开发了很多R包,如assertive(用于检查变量的状态)和sig(用于确保功能具有合理的API)。他也是The Damned Liars公司的统计学顾问。
“R图书大家庭迎来了一位清新、不落俗套、风趣幽默的新成员。阅读本书是十足的享受,令我大开眼界。”
——John Verzani,纽约州立大学/斯坦顿大学
“这本书读起来感觉棒极了,示例完整清晰,内容通俗易懂,是目前市面上介绍R核心组件优秀的图书之一。”
——Rebecca Smith,TDX公司分析经理
“本书正是你梦寐以求的R图书!不要只看封面,直接翻开书看内容吧。”
——JD Long,CerebralMastication.com资深博主
译者序 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
R 是一种编程语言,也是用于数据分析和统计的软件环境。它是一个GNU 项目,这意味着它是自由的开源软件。它正在以指数级的速度不断成长——普遍认为,它的用户人数可能超过了100 万,它有4000 多个由开发社区贡献的附件包,而且每年以约25% 的速度增加。在本书创作之时,它在Tiobe 编程社区指数(Tiobe Programming Community Index)的开发语言流行榜上已排至第24 位,大致与SAS 和MATLAB 看齐。
R 广泛地应用在每一个需要统计或数据分析的领域,涵盖了金融、市场营销、医药、基因组学、流行病学、社会科学、教学以及许多其他较小的领域。
关于本书
因为R 主要用于统计分析,所以很多关于R 的书都在指导你如何计算统计或模型数据集。然而,这些书忽视了数据分析应用的实际情况。事实上,除非你做的是尖端研究,否则你所用到的统计技术往往只需用于常规任务,而且你的模型可能也不大。完整的数据分析流程更像是这样:
(1) 取得一些数据;
(2) 清理数据;
(3) 探索和可视化数据;
(4) 数据建模并做出预测;
(5) 展示或发布你的结果。
当然,每个阶段都可能碰到一些有趣的问题,以至于你需要更多的数据,或者要以不同的方式处理现有数据,这会使你的工作倒退一步。工作流是可以迭代的,但每个步骤都不可或缺。
本书的第一部分会从头开始教你R——你不需要任何编程语言的经验。实际上,虽然完全没有编程经验也无妨,但有一些基本的编程知识会更好。例如,本书介绍了如何注释代码以及编写for 循环,但没有作更详细的解释。因此,如果你想要找本真正的编程入门课本,那么Jason R。 Briggs 写的Python for Kids 非常合适!
本书的第二部分将展示R 语言的完整数据分析流程,这里需要一些基本的统计知识。例如,你应该了解平均值和标准差等术语,以及什么是条形图(bar chart)。
本书最后将介绍R 的一些高级主题,例如面向对象编程和包的创建。Garrett Grolem 的Data Analysis with R 将会在本书的基础上深入探讨数据分析流程。
我一直在寻找一本能够真正帮助我入门R语言的书籍,市面上确实不少,但很多要么过于理论化,要么只是简单罗列函数,让人看了之后还是云里雾里。直到我翻开了这本《图灵程序设计丛书:学习R》,才感觉眼前豁然开朗。书的开篇并没有直接抛出复杂的概念,而是从安装R和RStudio这样最基础、最容易让人望而却步的环节开始,一步步引导。我尤其喜欢它在介绍变量、数据类型时,不仅仅是给出定义,还配上了大量形象的比喻和直观的代码示例,让我这个之前对编程几乎零基础的人也能轻松理解。更让我惊喜的是,书中对于数据处理的讲解,例如如何读取不同格式的数据、如何进行数据清洗和转换,都写得非常细致,每一个步骤都拆解得非常清晰,并且强调了实际应用中的注意事项。我之前尝试过其他一些教程,总觉得它们跳跃性太强,但这本书的逻辑性很强,层层递进,让人感觉每学到一个新概念,都能立刻在后续的例子中得到印证和巩固,学习的动力也因此增强了不少。
评分这是一本让我对数据分析产生了浓厚兴趣的入门读物。在接触这本书之前,我对R语言的印象仅停留在“统计学家的工具”,认为它枯燥且难以掌握。然而,这本书以一种非常友好的方式,将R语言的强大功能展现在我面前。它不仅仅是教授语法,更重要的是教会了我如何思考数据,如何运用R来解决实际问题。比如,书中在讲解可视化之前,花了大量篇幅介绍数据探索性分析(EDA),强调了理解数据特征、识别异常值、发现潜在模式的重要性,这让我明白了可视化并非空中楼阁,而是建立在对数据深入理解基础上的。而且,它在介绍绘图函数时,并没有一股脑地罗列,而是根据不同的绘图目的,循序渐进地引入`ggplot2`这样的强大包,并且对图表的元素、美化选项进行了详细的解析,让我能画出既美观又信息量丰富的图表。每一次完成书中的练习,看到自己亲手将杂乱的数据转化为清晰的洞察,都让我充满了成就感,也让我对数据分析的世界有了更深的向往。
评分我之前在学习某种编程语言时,经常会遇到一个困境:书本上的例子都很完美,但一旦用到自己的实际数据,就各种报错,无从下手。这本《学习R》在这方面做得非常出色。它在讲解过程中,经常会穿插一些“真实世界”的案例,比如处理来自真实调查的问卷数据,或者分析公开的经济指标。这些案例往往包含了一些不规范、不完整的数据,作者并没有回避这些问题,而是手把手地教我们如何去发现、分析和处理这些“脏”数据。我印象特别深刻的是关于缺失值处理的部分,书中提供了多种策略,并且详细说明了每种策略适用的场景和可能带来的影响,这让我明白了编程不仅仅是写代码,更是一种解决实际问题的艺术。这种实战性极强的教学方式,让我感觉自己学的知识是有用的,能够真正应用到我的工作中去,而不是纸上谈兵。
评分坦白说,我不是一个典型的“技术书”爱好者,很多技术书籍在我看来都像是在读天书。但是,《图灵程序设计丛书:学习R》打破了我的固有印象。它的语言风格非常亲切,就像一个经验丰富的老师在旁边指导你一样。在讲解一些相对抽象的概念时,比如函数式编程的思想,作者会用一些生动的比喻,甚至是一些生活中的例子来辅助说明,让我这种不擅长抽象思维的人也能理解。而且,书中对于代码的讲解,不仅仅是“这样写”,更会解释“为什么这样写”,以及“这样做有什么好处”。这种深入的解释,让我能够举一反三,而不是死记硬背。每次遇到难点,我都能在这本书中找到清晰的解释和有用的提示,让我能够克服困难,继续前进,而不是半途而废。
评分我一直认为,一本好的技术书籍,除了传授知识,更应该激发读者的学习热情。而这本书无疑做到了这一点。从一开始的动机引入,到后来的每一个案例,都充满了趣味性和实用性。它没有高高在上地讲授理论,而是把R语言的强大功能置于解决实际问题的框架下,让我看到了学习R的价值和可能性。书中在介绍各种统计分析方法时,都会紧密结合实际数据,让我们能够通过代码直接验证这些方法的有效性,并且理解它们是如何被应用于理解数据的。我特别喜欢书中关于模型构建和评估的部分,作者讲解得非常透彻,不仅仅是给出公式,更重要的是解释了模型背后的逻辑,以及如何根据实际情况选择合适的模型,并对其进行评价。这种循序渐进、案例丰富的学习方式,让我感觉学习R不再是一件枯燥的任务,而是一场充满探索和发现的旅程。
评分质量不错,相对专业。
评分书的制作质量有些太差,内容还没来得及看
评分不错的书,不错的书,不错的书!
评分很不错的学习R的书
评分作为入门书很不错,开始学习。
评分学习R的好书,值得拥有。
评分质量好,运货快,非常赞。
评分不错的吧!!
评分书的质量很好,主要还是快
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有