r数据科学电子书书-R数据科学pdf中文免费版高清完整版

r数据科学电子书书-R数据科学pdf中文免费版高清完整版

编辑点评:非常值得随时查阅的R工具书

关于r编程非常好的一本参考书籍,R数据科学pdf采用循序渐进的方式,非常棒,一上午可以刷200页。tidyverse和其子包的核心函数非常实用,定位是 data science 入门书,特点是使用了 tidyverse 的一套哲学。

R数据科学pdf中文免费版

R数据科学pdf预览

r数据科学电子书书-R数据科学pdf中文免费版高清完整版插图(1)

r数据科学电子书书-R数据科学pdf中文免费版高清完整版插图(2)

r数据科学电子书书-R数据科学pdf中文免费版高清完整版插图(3)

r数据科学电子书书-R数据科学pdf中文免费版高清完整版插图(4)

r数据科学电子书书-R数据科学pdf中文免费版高清完整版插图(5)

r数据科学电子书书-R数据科学pdf中文免费版高清完整版插图(6)

r数据科学电子书书-R数据科学pdf中文免费版高清完整版插图(7)

r数据科学电子书书-R数据科学pdf中文免费版高清完整版插图(8)

目录分享

前言XV

第一部分探索

第1章使用ggplot2进行数据可视化3

1.1简介3

1.2第一步4

1.2.1mpg数据框4

1.2.2创建ggplot图形5

1.2.3绘图模板5

1.2.4练习6

1.3图形属性映射6

1.4常见问题10

1.5分面11

1.6几何对象13

1.7统计变换18

1.8位置调整21

1.9坐标系25

1.10图形分层语法27

第2章工作流:基础29

2.1代码基础29

2.2对象名称30

2.3函数调用30

第3章使用dplyr进行数据转换33

3.1简介33

3.1.1准备工作33

3.1.2nycflights1333

3.1.3dplyr基础34

3.2使用filter()筛选行35

3.2.1比较运算符36

3.2.2逻辑运算符36

3.2.3缺失值37

3.2.4练习38

3.3使用arrange()排列行39

3.4使用select()选择列40

3.5使用mutate()添加新变量42

3.5.1常用创建函数43

3.5.2练习45

3.6使用summarize()进行分组摘要46

3.6.1使用管道组合多种操作46

3.6.2缺失值48

3.6.3计数49

3.6.4常用的摘要函数52

3.6.5按多个变量分组56

3.6.6取消分组57

3.6.7练习57

3.7分组新变量(和筛选器)58

第4章工作流:脚本60

4.1运行代码61

4.2RStudio自动诊断61

第5章探索性数据分析63

5.1简介63

5.2问题64

5.3变动64

5.3.1对分布进行可视化表示65

5.3.2典型值67

5.3.3异常值69

5.3.4练习70

5.4缺失值71

5.5相关变动72

5.5.1分类变量与连续变量72

5.5.2两个分类变量77

5.5.3两个连续变量79

5.6模式和模型82

5.7ggplot2调用84

5.8更多学习资源85

第6章工作流:项目86

6.1什么是真实的86

6.2你的分析位于哪里87

6.3路径与目录88

6.4RStudio项目88

6.5小结90

第二部分数据处理

第7章使用tibble实现简单数据框93

7.1简介93

7.2创建tibble93

7.3对比tibble与data.frame95

7.3.1打印95

7.3.2取子集96

7.4与旧代码进行交互96

第8章使用readr进行数据导入98

8.1简介98

8.2入门98

8.2.1与R基础包进行比较100

8.2.2练习101

8.3解析向量101

8.3.1数值102

8.3.2字符串103

8.3.3因子105

8.3.4日期、日期时间与时间105

8.3.5练习107

8.4解析文件107

8.4.1策略107

8.4.2问题108

8.4.3其他策略110

8.5写入文件112

8.6其他类型的数据113

第9章使用dplyr处理关系数据114

9.1简介114

9.2nycflights13115

9.3键117

9.4合并连接119

9.4.1理解连接120

9.4.2内连接121

9.4.3外连接121

9.4.4重复键122

9.4.5定义键列124

9.4.6练习125

9.4.7其他实现方式126

9.5筛选连接127

9.6连接中的问题129

9.7集合操作130

第10章使用stringr处理字符串131

10.1简介131

10.2字符串基础131

10.2.1字符串长度132

10.2.2字符串组合133

10.2.3字符串取子集133

10.2.4区域设置134

10.2.5练习134

10.3使用正则表达式进行模式匹配135

10.3.1基础匹配135

10.3.2练习136

10.3.3锚点136

10.3.4练习137

10.3.5字符类与字符选项137

10.3.6练习138

10.3.7重复138

10.3.8练习139

10.3.9分组与回溯引用140

10.3.10练习140

10.4工具140

10.4.1匹配检测142

10.4.2练习143

10.4.3提取匹配内容144

10.4.4练习145

10.4.5分组匹配145

10.4.6练习147

10.4.7替换匹配内容147

10.4.8练习147

10.4.9拆分147

10.4.10练习149

10.4.11定位匹配内容149

10.5其他类型的模式149

10.6正则表达式的其他应用152

10.7stringi152

第11章使用forcats处理因子154

11.1简介154

11.2创建因子154

11.3综合社会调查156

11.4修改因子水平157

第12章使用lubridate处理日期和时间160

12.1简介160

12.2创建日期或时间161

12.2.1通过字符串创建161

12.2.2通过各个成分创建162

12.2.3通过其他类型数据创建164

12.2.4练习165

12.3日期时间成分165

12.3.1获取成分165

12.3.2舍入168

12.3.3设置成分168

12.3.4练习170

12.4时间间隔170

12.4.1时期170

12.4.2阶段171

12.4.3区间173

12.4.4小结173

12.4.5练习174

12.5时区174

第三部分编程

第13章使用magrittr进行管道操作179

13.1简介179

13.2管道的替代方式179

13.2.1中间步骤180

13.2.2重写初始对象181

13.2.3函数组合181

13.2.4使用管道182

13.3不适合使用管道的情形183

13.4magrittr中的其他工具183

第14章函数185

14.1简介185

14.2什么时候应该使用函数186

14.3人与计算机的函数188

14.4条件执行190

14.4.1条件191

14.4.2多重条件192

14.4.3代码风格192

14.4.4练习193

14.5函数参数194

14.5.1选择参数名称195

14.5.2检查参数值195

14.5.3点点点(…)197

14.5.4惰性求值197

14.5.5练习198

14.6返回值198

14.6.1显式返回语句198

14.6.2使得函数支持管道199

14.7环境200

第15章向量201

15.1简介201

15.2向量基础202

15.3重要的原子向量203

15.3.1逻辑型203

15.3.2数值型203

15.3.3字符型204

15.3.4缺失值204

15.3.5练习204

15.4使用原子向量205

15.4.1强制转换205

15.4.2检验函数206

15.4.3标量与循环规则206

15.4.4向量命名208

15.4.5向量取子集208

15.4.6练习209

15.5递归向量(列表)210

15.5.1列表可视化211

15.5.2列表取子集211

15.5.3调料列表212

15.5.4练习214

15.6特性214

15.7扩展向量216

15.7.1因子216

15.7.2日期和日期时间216

15.7.3tibble217

15.7.4练习218

第16章使用purrr实现迭代219

16.1简介219

16.2for循环220

16.3for循环的变体222

16.3.1修改现有对象222

16.3.2循环模式223

16.3.3未知的输出长度223

16.3.4未知的序列长度224

16.3.5练习225

16.4for循环与函数式编程226

16.5映射函数228

16.5.1快捷方式229

16.5.2R基础包230

16.5.3练习231

16.6对操作失败的处理231

16.7多参数映射233

16.8游走函数236

16.9for循环的其他模式237

16.9.1预测函数237

16.9.2归约与累计238

16.9.3练习239

第四部分模型

第17章使用modelr实现基础模型243

17.1简介243

17.2一个简单模型244

17.3模型可视化250

17.3.1预测250

17.3.2残差252

17.3.3练习253

17.4公式和模型族254

17.4.1分类变量255

17.4.2交互项(连续变量与分类变量)256

17.4.3交互项(两个连续变量)259

17.4.4变量转换261

17.4.5练习264

17.5缺失值264

17.6其他模型族265

第18章模型构建266

18.1简介266

18.2为什么质量差的钻石更贵267

18.2.1价格与重量268

18.2.2一个更复杂的模型271

18.2.3练习273

18.3哪些因素影响了每日航班数量273

18.3.1一周中的每一天274

18.3.2季节性星期六效应277

18.3.3计算出的变量280

18.3.4年度时间:另一种方法281

18.3.5练习282

18.4学习更多模型知识282

第19章使用purrr和broom处理多个模型284

19.1简介284

19.2列表列285

19.3创建列表列286

19.3.1使用嵌套286

19.3.2使用向量化函数287

19.3.3使用多值摘要288

19.3.4使用命名列表288

19.3.5练习289

19.4简化列表列290

19.4.1列表转换为向量290

19.4.2嵌套还原291

19.4.3练习292

19.5使用broom生成整洁数据292

第五部分沟通

第20章RMarkdown295

20.1简介295

20.2RMarkdown基础295

20.3使用Markdown格式化文本298

20.4代码段299

20.4.1代码段名称300

20.4.2代码段选项300

20.4.3表格301

20.4.4缓存301

20.4.5全局选项302

20.4.6内联代码303

20.4.7练习303

20.5排错304

20.6YAML文件头304

20.6.1文档参数304

20.6.2参考文献与引用306

20.7更多学习资源307

第21章使用ggplot2进行图形化沟通308

21.1简介308

21.2标签309

21.3注释311

21.4标度316

21.4.1坐标轴刻度与图例项目316

21.4.2图例布局318

21.4.3标度替换320

21.4.4练习324

21.5缩放325

21.6主题326

21.7保存图形328

21.7.1图形大小328

21.7.2其他重要选项330

21.8更多学习资源330

第22章RMarkdown输出类型331

22.1简介331

22.2输出选项332

22.3文档332

22.4笔记本333

22.5演示文稿333

22.6仪表盘334

22.7交互元素335

22.7.1htmlwidgets335

22.7.2Shiny336

22.8网站337

22.9其他类型338

22.10更多学习资源338

第23章RMarkdown工作流339

作者简介341

封面简介341

图书亮点

R社区领军人物作品,从典型数据科学项目所需工具模型着手,带领读者掌握R语言精华,学会熟练使用多种工具解决各种数据科学难题。

探索——以可视化作为R编程起点,再进行重要变量选取、筛选关键观测等重要数据操作,并对数据提出问题且找到答案。

处理——导入、整理并转换数据。

编程——管道操作的工作原理和替代方式,函数使用规则,如何实现迭代。

模型——深刻理解模型背后的数学理论和数据,直观认识统计模型工作原理。

沟通——学会R Markdown,让人们快速轻松理解你的工作。

关于作者

哈德利·威克姆(Hadley Wickham), RStudio首席科学家,统计学家,斯坦福大学、奥克兰大学、莱斯大学兼职统计学教授。已被下载数百万次的ggplot2等多款知名R包的开发者,一直致力于让普罗大众更容易上手数据分析,被R社区誉为“改变了R的人”。另著有《R包开发》等书。

加勒特·格罗勒芒德(Garrett Grolemund),RStudio数据科学家,知名R培训师,曾受邀在Google、eBay等诸多公司讲授R语言和数据科学,在DataCamp开授的R相关课程备受R开发者喜爱。另著有《R语言入门与实践》。

译者简介

陈光欣,毕业于清华大学并留校工作,主要兴趣为数据分析与数据挖掘。

前言试读

数据科学是一门激动人心的学科,它可以将原始数据转化为认识、见解和知识。本书的目标是帮助你学习使用R 语言中最重要的数据科学工具。读完本书后,你将掌握R 语言的精华,并能够熟练使用多种工具来解决各种数据科学难题。

你将学到什么

数据科学是一个极其广阔的领域,仅靠一本书是不可能登堂入室的。本书的目标是教会你使用最重要的数据科学工具。在一个典型的数据科学项目中,需要的工具模型大体如下图所示。

首先,你必须将数据导入R。这实际上就是读取保存在文件、数据库或Web API 中的数据,再加载到R 的数据框中。如果不能将数据导入R,那么数据科学就根本无从谈起。

导入数据后,就应该对数据进行整理。数据整理就是将数据保存为一致的形式,以满足其所在数据集在语义上的要求。简而言之,如果数据是整洁的,那么每列都是一个变量,每行都是一个观测。整洁的数据非常重要,因为一致的数据结构可以让你将工作重点放在与数据有关的问题上,而不用再费尽心思地将数据转换为各种形式以适应不同的函数。

一旦拥有了整洁的数据,通常下一步就是对数据进行转换。数据转换包括选取出感兴趣的观测(如居住在某个城市里的所有人,或者去年的所有数据)、使用现有变量创建新变量(如根据距离和时间计算出速度),以及计算一些摘要统计量(如计数或均值)。数据整理和数据转换统称为数据处理。 一旦使用需要的变量完成了数据整理,那么生成知识的方式主要有两种:可视化与建模。 这两种方式各有利弊,相辅相成。因此,所有实际的数据分析过程都要在这两种方式间多次重复。 

可视化本质上是人类活动。良好的可视化会让你发现意料之外的现象,或对数据提出新的问题。你还可以从良好的可视化中意识到自己提出了错误的问题,或者需要收集不同的数据。可视化能够带给你惊喜,但不要期望过高,因为毕竟还是需要人来对其进行解释。 

模型是弥补可视化缺点的一种工具。如果已经将问题定义得足够清晰,那么你就可以使用一个模型来回答问题。因为模型本质上是一种数学工具或计算工具,所以它们的扩展性一 般非常好。即使扩展性出现问题,购买更多计算机也比雇用更多聪明的人便宜!但是每个 模型都有前提假设,而且模型本身不会对自己的前提假设提出疑问,这就意味着模型本质上不能给你带来惊喜。

数据科学的最后一个步骤就是沟通。对于任何数据分析项目来说,沟通绝对是一个极其重 要的环节。如果不能与他人交流分析结果,那么不管模型和可视化让你对数据理解得多么透彻,这都是没有任何实际意义的。

围绕在这些技能之外的是编程。编程是贯穿数据科学项目各个环节的一项技能。数据科学 家不一定是编程专家,但掌握更多的编程技能总是有好处的,因为这样你就能够对日常任务进行自动处理,并且非常轻松地解决新的问题。

你将在所有的数据科学项目中用到这些工具,但对于多数项目来说,这些工具还不够。这大致符合 80/20 定律:你可以使用从本书中学到的工具来解决每个项目中 80% 的问题,但你还需要其他工具来解决其余 20% 的问题。我们将在本书中为你提供资源,让你能够学到更多的技能。 

本书的组织结构 

前面对数据科学工具的描述大致是按照我们在分析中使用它们的顺序来组织的(尽管你肯 定会多次使用它们)。然而,根据我们的经验,这并不是学习它们的最佳方式,具体原因 如下。 

从数据导入和数据整理开始学习并不是最佳方式,因为对于导入和整理数据来说,80% 的时间是乏味和无聊的,其余 20% 的时间则是诡异和令人沮丧的。在学习一项新技术时, 这绝对是一个糟糕的开始!相反,我们将从数据可视化和数据转换开始,此时的数据已经导入并且是整理完毕的。这样一来,当导入和整理自己的数据时,你就会始终保持高 昂的斗志,因为你知道这种痛苦终有回报。 

有些主题最好结合其他工具来解释。例如,如果你已经了解可视化、数据整理和编程,那么我们认为你会更容易理解模型是如何工作的。 

编程工具本身不一定很有趣,但它们确实可以帮助你解决更多非常困难的问题。在本书 的中间部分,我们会介绍一些编程工具,它们可以与数据科学工具结合起来以解决非常 有趣的建模问题。

我们尽量在每一章中使用同一种模式:先给出一些引人入胜的示例,以便你大体了解这一章 的内容,然后再深入细节。本书的每一节都配有习题,以帮助你实践所学到的知识。虽然跳 过这些习题是个非常有诱惑力的想法,但使用真实问题进行练习绝对是最好的学习方式。

本书未包含的内容 

本书并未涉及一些重要主题。我们深信,重要的是将注意力坚定地集中在最基本的内容上, 这样你就可以尽快入门并开展实际工作。这也就是说,本书不会涵盖每一个重要主题。

大数据

本书主要讨论那些小规模的、能够驻留在内存中的数据集。这是开始学习数据科学的正确方式,因为只有处理过小数据集,你才能处理大数据集。你从本书中学到的工具可以轻松地处理几百兆字节的数据,处理 1~2 GB 的数据也不会有什么大问题。如果你的日常工作是处理更大的数据(如 10~100 GB),那么你应该更多地学习一下 data.table(https://github. com/Rdatatable/data.table)。本书不会介绍 data.table,因为它的界面太过简洁,几乎没有语言提示,这使得学习起来很困难。但是如果你需要处理大数据,为了获得性能上的回报,多付出一些努力来学习它还是值得的。

如果你的数据比这还大,那么就需要仔细思考一下了,这个大数据问题是否其实就是一个小数据问题。虽然整体数据非常大,但回答特定问题所需要的数据通常较小。你可以找出一个子集、子样本或者摘要数据,该数据既适合在内存中处理,又可以回答你感兴趣的问题。此时的挑战就是如何找到合适的小数据,这通常需要多次迭代。

另外一种可能是,你的大数据问题实际上就是大量的小数据问题。每一个问题都可以在内存中处理,但你有数百万个这样的问题。举例来说,假设你想为数据集中的每个人都拟合一个模型。如果只有 10 人或 100 人,那这是小菜一碟,但如果有 100 万人,情况就完全不同了。好在每个问题都是独立于其他问题的(这种情况有时称为高度并行,embarrassingly parallel),因此你只需要一个可以将不同数据集发送到不同计算机上进行处理的系统(如 Hadoop 或 Spark)即可。如果已经知道如何使用本书中介绍的工具来解决独立子集的问题,那么你就可以学习一下新的工具(比如 sparklyr、rhipe 和 ddr)来解决整个数据集的问题。

Python、Julia以及类似的语言

在本书中,你不会学到有关 Python、Julia 以及其他用于数据科学的编程语言的任何内容。这并不是因为我们认为这些工具不好,它们都很不错!实际上,多数数据科学团队都会使用多种语言,至少会同时使用 R 和 Python。

但是,我们认为最好每次只学习并精通一种工具。如果你潜心研究一种工具,那么会比同时泛泛地学习多个工具掌握得更快。这并不是说你只应该精通一种工具,而是说每次专注于一件事情时,通常你会进步得更快。在整个职业生涯中,你都应该努力学习新事物,但是一定要在充分理解原有知识后,再去学习感兴趣的新知识。

我们认为 R 是你开始数据科学旅程的一个非常好的起点,因为它从根本上说就是一种用来支持数据科学的环境。R 不仅仅是一门编程语言,它还是进行数据科学工作的一种交互式环境。为了支持交互性,R 比多数同类语言灵活得多。虽然会导致一些缺点,但这种灵活性的一大好处是,可以非常容易地为数据科学过程中的某些环节量身定制语法。这些微型语言有助于你从数据科学家的角度来思考问题,还可以在你的大脑和计算机之间建立流畅的交流方式。

非矩形数据

本书仅关注矩形数据。矩形数据是值的集合,集合中的每个值都与一个变量和一个观测相关。很多数据集天然地不符合这种规范,比如图像、声音、树结构和文本。但是矩形数据框架在科技与工业领域是非常普遍的。我们认为它是开始数据科学旅途的一个非常好的起点。

假设验证

数据分析可以分为两类:假设生成和假设验证(有时称为验证性分析)。无须掩饰,本书的重点就在于假设生成,或者说是数据探索。我们将对数据进行深入研究,并结合专业知识生成多种有趣的假设来帮助你对数据的行为方式作出解释。你可以对这些假设进行非正式的评估,凭借自己的怀疑精神从多个方面向数据发起挑战。

假设验证与假设生成是互补的。假设验证比较困难,原因如下。

?你需要一个精确的数学模型来生成可证伪的预测,这通常需要深厚的统计学修养。

?为了验证假设,每个观测只能使用一次。一旦使用观测的次数超过了一次,那么就回到了探索性分析。这意味着,若要进行假设验证,你需要“预先注册”(事先拟定好)自己的分析计划,而且看到数据后也不能改变计划。在本书的第四部分中,我们将讨论一些相关的策略,你可以使用它们让假设验证变得更容易。

经常有人认为建模是用来进行假设验证的工具,而可视化是用来进行假设生成的工具。这种简单的二分法是错误的:模型经常用于数据探索;只需稍作处理,可视化也可以用来进行假设验证。核心区别在于你使用每个观测的频率:如果只用一次,那么就是假设验证;如果多于一次,那么就是数据探索。

准备工作

为了最有效地利用本书,我们对你的知识结构做了一些假设。你应该具有一定的数学基础,如果有一些编程经验也会有所帮助。如果从来没有编写过程序,那么你应该学习一下Garrett 所著的《R 语言入门与实践》1,它可以作为本书的有益补充。

为了运行本书中的代码,你需要 4 个工具:R、RStudio、一个称为 tidyverse 的 R 包集合,以及另外几个 R 包。包是可重用 R 代码的基本单位,它们包括可重用的函数、描述函数使用方法的文档以及示例数据。

注 1:有关本书的详细信息,请参见图灵社区:http://www.ituring.com.cn/book/1540。

R

可以在 CRAN(comprehensive R archive network)下载 R。CRAN 由分布在世界各地的很多镜像服务器组成,用于分发 R 和 R 包。不要尝试选择离你近的服务器,而应该使用云镜像:https://cloud.r-project.org,它会自动找出离你最近的服务器。

R 的主版本一年发布一次,每年也会发布两三个次版本,因此你应该定期更新。更新 R 有一点麻烦,特别是更新主版本会要求你重新安装所有的 R 包,但是如果不更新的话,麻烦会更多。

RStudio

RStudio 是用于 R 编程的一种集成开发环境(integrated development environment,IDE)。你可以从 http://www.rstudio.com/download 下载并安装。RStudio 每年会更新多次。当有新版本时, RStudio 会进行通知。应该定期更新,这样你就可以使用其最新、最强大的功能。为了运行本书中的代码,请确认安装了 RStudio 1.0.0。

启动 RStudio 后,你会看到界面有以下两个关键区域。

现在,你只要知道可以在控制台窗格中输入 R 代码,然后按回车键运行就够了。在学习本书的过程中,你会学到 RStudio 的更多使用方法。

tidyverse

你还需要安装一些 R 包。R 包是函数、数据和文档的集合,是对 R 基础功能的扩展。只有学会如何使用 R 包,才能真正掌握 R 语言的精华。你在本书中学习的大多数 R 包都是tidyverse 的一部分。tidyverse 中的 R 包有着同样的数据处理与编程理念,它们的设计从根本上就是为了协同工作。

你可以用一行代码完整地安装 tidyverse:

install.packages("tidyverse")

在计算机上启动 RStudio 并在控制台中输入这行代码,然后按回车键来运行。R 会从CRAN 下载这个包并将其安装在你的计算机上。如果安装有问题,请先确认你连接了互联网,再确认 https://cloud.r-project.org 没有被你的防火墙或代理服务器阻拦。

如果没有使用 library() 函数加载 R 包,那么你就不能使用其中的函数、对象和帮助文件。一旦 R 包安装完成,你就可以使用 library() 函数进行加载:

library(tidyverse) 

#> Loading tidyverse: ggplot2 

#> Loading tidyverse: tibble 

#> Loading tidyverse: readr 

#> Loading tidyverse: purrr 

#> Loading tidyverse: dplyr 

#> Conflicts with tidy packages ——————————– #> filter(): dplyr, stats 

#> lag():    dplyr, stats

以上结果表明,tidyverse 正在加载 R 包 ggplot2、tibble、readr、purrr 和 dplyr。这些包被视为 tidyverse 的核心,因为几乎在所有的分析中都会用到它们。

tidyverse 中的包修改得相当频繁。你可以通过运行 tidyverse_update() 函数来检查是否有更新,并选择是否进行更新。

其他包

还有很多优秀的 R 包没有包含在 tidyverse 中,这是因为它们解决的是其他领域中的问题,或者它们遵循的是另外一套基本设计原则。它们不分优劣,只是不同而已。换句话说,与tidyverse 互补的不是 messyverse,而是其他所有相互关联的 R 包。在使用 R 完成越来越多的数据科学项目的过程中,你会不断发现新的包,也会不断更新对数据的认识。

运行R代码

前面展示了运行 R 代码的几个示例。本书以如下方式展示 R 代码:

1 + 2 #> [1] 3

如果在本地控制台中运行同样的代码,将得到如下结果:

> 1 + 2 [1] 3

这里有两处主要区别。在控制台中,需要在 >(提示符)后面输入代码,但本书不显示提示符。书中的输出结果被 #> 注释掉了,但是控制台中的输出结果则直接显示在代码后面。这样一来,如果你阅读的是本书电子版,你就可以轻松地将代码从书中复制到控制台。

全书使用一致的规则来表示代码。

?函数与代码的字体相同,并且其后有圆括号,如 sum() 或 mean()。

?其他 R 对象(比如数据或函数参数)也使用代码字体,但其后没有圆括号,如 ?ights 或 x。

?如果想要明确指出对象来自于哪个 R 包,那么我们会在包的名称后面加两个冒号,如dplyr::mutate() 或 nyc?ights13::?ights;R 代码也支持这种形式。

获取帮助及更多学习资源

本书并非知识孤岛,单单利用一种资源是无法精通 R 语言的。当开始将本书介绍的技术应用于自己的数据时,你很快就会发现本书并未解答所有问题。本节将介绍几个获取帮助的小技巧,以帮助你持续地学习。

如果遇到问题,首先应该求助于 Google。通常来说,在查询内容时加上一个“R”,就足以得到与 R 相关的结果。如果查不到有用的结果,这意味着目前还没有特定的 R 解决方案。 Google 特别适合查询错误消息。如果收到一条错误消息,但根本不知道其含义,那就用Google 搜索一下吧!很可能有人遇到过这种错误,而答案就在网上。(如果错误消息不是英文,可以运行 Sys.setenv(LANGUAGE = "en"),接着重新运行代码;使用英文错误消息进行查询更可能获得帮助。)

如果 Google 没有奏效,那么可以试试 Stack Over?ow。先花点时间搜索一下现成的答案;使用 [R] 可以将搜索范围限定在与 R 相关的问题和答案中。如果没有发现任何有用的内容,那么就准备一个最简单的可重现实例,即 reprex。良好的 reprex 让你更容易从他人那里获得帮助,而且在准备 reprex 时,你往往自己就能发现问题所在。

reprex 的准备工作应该包括 3 项内容:所需 R 包、数据和代码。

?应该在脚本开头就加载 R 包,这样就会很容易知道 reprex 都需要哪些 R 包。应该趁机检查自己是否使用了每个 R 包的最新版本;你可能会发现,当安装了某个 R 包的最新版本后,问题就解决了。对于 tidyverse 中的 R 包来说,检查版本的最简单方式是运行tidyverse_update() 函数。

?在 reprex 中包含数据的最简单方法是使用 dput() 函数生成重建数据的 R 代码。例如,要想在 R 中重建 mtcars 数据集,可以遵循以下步骤:

(1) 在 R 中运行 dput(mtcars);

(2) 复制输出结果;

(3) 在可重现脚本中输入 mtcars <-,然后粘贴输出结果。

应该努力找出依然能够反映问题的数据最小子集。

?花一点时间确保别人可以轻松理解你的代码:

–确保使用了空格,并且变量名简明扼要;

–用注释来说明你的问题所在;

–尽最大努力去除所有与问题不相关的内容。

代码越短,越容易理解,问题也就越容易解决。

启动一个新的 R 会话,将你的脚本复制并粘贴进去,检查 reprex 是否已经准备完毕。

你还应该花些时间来防患于未然。每天花一点时间学习 R,长远来看你将获得丰厚的回报。可以在 RStudio 博客上关注 Hadley、Garrett 和其他 RStudio 开发人员的动态。我们会在博客上发布有关新 R 包、新 IDE 功能和面授课程的一些公告。你还可以在 Twitter 上关注 Hadley(@hadleywickham)和 Garrett(@statgarrett),也可以关注 @rstudiotips 来了解RStudio 的新功能。

为了更好地掌握 R 社区的最新动态,我们建议你关注 R-bloggers 这个网站,该网站汇集了世界各地 500 多个关于 R 的博客。如果你是活跃的 Twitter 用户,可以关注 #rstats 这个主题标签。Twitter 是 Hadley 跟踪 R 社区最新发展的一个关键工具。

R数据科学pdf中文免费版截图

r数据科学电子书书-R数据科学pdf中文免费版高清完整版插图(9)r数据科学电子书书-R数据科学pdf中文免费版高清完整版插图(10)r数据科学电子书书-R数据科学pdf中文免费版高清完整版插图(11)r数据科学电子书书-R数据科学pdf中文免费版高清完整版插图(12)

评分及评论

无用户评分

来评个分数吧

  • 5 分
    0
  • 4 分
    0
  • 3 分
    0
  • 2 分
    0
  • 1 分
    0

Comments