发表于2024-12-30
资深数据专家凝炼数十年教学和实践经验,全面阐释如何使用R的20%功能完成80%的现代数据工作
通过开源R软件,你可以构建强大的统计模型来解决许多极具挑战性的难题。对非统计学家来说,一直以来R都难于学习和使用,市面上很多介绍R语言的书籍都假设读者具有足够的预备知识,但本书则不同。
本书融合资深数据科学家Jared P. Lander在教授R语言上的丰富经验,通过大量实例,详细讲解R语言的核心功能。对刚接触统计程序和模型的人来说,本书是一套堪称完美的教程,其内容的组织结构使得学习R语言变得简单和直观。本书集中介绍R 20%的功能,但这20%的功能足以完成80%的现代数据工作。
通过阅读本书,你将学到:
运用R处理数学问题:变量类型、向量、调用函数等
功能强大、常用的数据结构:数据框、矩阵和列表
创建直观的统计图形
编写自定义函数
分组操作提高效率
合并和重塑多个数据集
使用R的工具操作字符串和正则表达式
创建正态分布、二项分布和泊松分布
基本统计信息编程:均值、标准差以及t-检验
建立线性、广义线性和非线性模型
评估模型和变量选择的质量
使用弹性网和贝叶斯方法防止过度拟合
分析单变量和多变量时间序列数据
通过K均值和分层聚类对数据进行分类
用knitr准备报告、幻灯片和网页
用devtools和Rcpp建立可重复使用的R包
《R语言:实用数据分析和可视化技术》是资深数据专家数十年教学与实践经验的结晶,以简单直接的方式详细讲解R语言的所有基础知识,以及常见统计方法和模型在R中的操作规范,通过大量实例,帮助读者快速理解并掌握R的核心功能,有效解决实际工作问题。
《R语言:实用数据分析和可视化技术》共24章,第1~3章介绍R语言的获取与安装、R环境的设置以及R包的基础知识;第4~5章介绍R语言基础知识和高级数据结构,涉及数学运算、向量、调用函数以及数据框、列表、矩阵和数组等;第6章介绍如何导入数据;第7章详细介绍统计图形的绘制,包括基本绘图和ggplot2;第8~10章介绍R函数编写,包括对结构、参数和返回规则的讨论,讲解if和ifelse以及复杂语句控制程序的流程、for和while循环迭代等;第11~13章介绍数据的分组操作、数据整理和字符串操作;第14~15章介绍概率分布与描述性统计;第16~20章介绍线性模型、广义线性模型、模型诊断、正则化与压缩以及非线性模型等;第21章介绍时间序列和自相关;第22章介绍各种聚类方式,包括K-means和分层聚类;第23章讨论可重复性、报告和利用knitr滑动展示;第24介绍如何创建R包
Jared P. Lander(贾里德 P. 兰德),资深数据专家,Lander Analytics公司创始人兼CEO,纽约开源统计编程聚会组织者,哥伦比亚大学统计学客座教授。在数据管理、多层次模型、机器学习、广义线性模型、可视化、数据管理和统计计算等多个领域拥有丰富经验。他致力于为各种类型的科技创业公司提供培训、融资、金融、医疗和人道主义救援等工作。他拥有哥伦比亚大学统计学硕士学位及瑞米伦贝格大学数学学士学位。
Contents
译者序
序言
前言
致谢
第1章 获取R 1
1.1 下载R 1
1.2 R版本 2
1.3 32位与64位 2
1.4 安装 2
1.5 R的社区版革命 8
1.6 小结 9
第2章 R环境 10
2.1 命令行界面 11
2.2 RStudio 12
2.3 Revolution Analytics RPE 20
2.4 小结 20
第3章 R包 21
3.1 包的安装 21
3.2 包的加载 23
3.3 创建一个包 24
3.4 小结 24
第4章 R语言基础 25
4.1 基本数学运算 25
4.2 变量 26
4.3 数据类型 28
4.4 向量 33
4.5 调用函数 37
4.6 函数文件 38
4.7 缺失数据 38
4.8 小结 39
第5章 高级数据结构 40
5.1 数据框 40
5.2 列表 47
5.3 矩阵 52
5.4 数组 54
5.5 小结 55
第6章 导入数据 56
6.1 导入CSV 56
6.2 导入Excel数据 57
6.3 读入数据库数据 58
6.4 导入其他统计工具数据 59
6.5 R二进制文件 60
6.6 包含在R中的数据 62
6.7 从互联网上抓取数据 62
6.8 小结 63
第7章 统计图形 64
7.1 基本图形 64
7.2 ggplot2 66
7.3 小结 78
第8章 编写R函数 79
8.1 hello world! 79
8.2 函数参数 80
8.3 返回值 82
8.4 do.call 83
8.5 小结 84
第9章 控制语句 85
9.1 if和else语句 85
9.2 switch语句 88
9.3 ifelse语句 89
9.4 复合检查 90
9.5 小结 91
第10章 循环,Un-R方式的迭代 92
10.1 for循环 92
10.2 while循环 94
10.3 控制循环 94
10.4 小结 95
第11章 分组操作 96
11.1 apply函数族 96
11.2 aggregate 99
11.3 plyr 102
11.4 data.table 106
11.5 小结 114
第12章 数据整理 115
12.1 cbind和rbind 115
12.2 连接 116
12.3 reshape2 122
12.4 小结 125
第13章 字符串操作 126
13.1 paste 126
13.2 把格式数据写成串(sprintf) 127
13.3 提取文本 128
13.4 正则表达式 132
13.5 小结 138
第14章 概率分布 139
14.1 正态分布 139
14.2 二项分布 144
14.3 泊松分布 148
14.4 其他分布 150
14.5 小结 152
第15章 描述性统计 153
15.1 概括性统计量 153
15.2 相关系数和协方差 156
15.3 t-检验 163
15.4 方差分析 169
15.5 小结 171
第16章 线性模型 172
16.1 简单线性回归 172
16.2 多元回归 177
16.3 小结 190
第17章 广义线性模型 191
17.1 逻辑斯蒂回归 191
17.2 泊松回归 194
17.3 其他的广义线性模型 198
17.4 生存分析 198
17.5 小结 202
第18章 模型诊断 203
18.1 残差 203
18.2 模型比较 208
18.3 交叉验证 211
18.4 Bootstrap 215
18.5 逐步变量选择 218
18.6 小结 221
第19章 正则化和压缩 222
19.1 弹性网络 222
19.2 贝叶斯压缩 235
19.3 小结 238
第20章 非线性模型 239
20.1 非线性最小二乘 239
20.2 样条 241
20.3 广义相加模型 245
20.4 决策树 249
20.5 随机森林 251
20.6 小结 251
第21章 时间序列和自相关 252
21.1 自回归移动平均模型 252
21.2 向量自回归 258
21.3 广义自回归异方差模型(GARCH) 263
21.4 小结 270
第22章 聚类 271
22.1 K-means 271
22.2 PAM 277
22.3 分层聚类 282
22.4 小结 284
第23章 可重复性、报告和利用knitr滑动展示 285
23.1 安装LATEX程序 285
23.2 LATEX初级 286
23.3 通过LATEX使用knitr 288
23.4 Markdown技巧 291
23.5 使用knitr和Markdown 292
23.6 pandoc 293
23.7 小结 295
第24章 创建R包 296
24.1 目录结构 296
24.2 包文件 297
24.3 包文档 302
24.4 包的检查、创建和安装 304
24.5 提交至CRAN 305
24.6 C++代码 305
24.7 小结 310
附录A 相关资源 311
The Translator’s Words 译者序
R语言是集统计分析和绘图于一身的面向对象的开源软件,其前身是贝尔实验室所创的S语言。由于其强大功能和开源性,R广泛运用于学术界和商业界。首先,相比于其他绝大多数商业软件,R语言具有一个得天独厚的优势,那就是开源性。像Matlab和SAS这样昂贵的商业软件将很多需求者拒之门外。其次,R语言具有不亚于其他软件的统计分析功能和绘图功能。基本上目前所有的统计方法在R里都有现成的包,或许令你绞尽脑汁的算法代码早已存在。这是因为人们可以将其所写的包放到R的主页上与所有使用R的人共享,这非常有利于研究人员的交流,这也是其他语言所不具备的优点。此外,R语言的使用非常简单。即使你没有接触过计算机语言,也能很快地学会R。近几年,中国的R语言大会举行的次数和参会的人数越来越多,尤其是业界人士占据了相当大比例。R语言正在飞快地融入业界,而且势头越来越猛。可以预见的是,R的应用场景将十分广阔。
非常荣幸能够翻译本书。第一次接触这本书时,就有很强的阅读欲望,进而产生把它翻译成中文的想法。这是一本覆盖面很广、非常基础的R语言和统计分析书籍,其内容几乎包含了R语言的所有基本知识,并且涵盖常见的统计方法和模型如何在R中实现。同时书中也包含一些比较新的知识。作者所采取的写作方式非常简单,在解释代码的作用之后,也给出该代码的正确输出结果,这种形式特别有利于初学者学习。并且本书中包含了大量的实例,这让一本计算机语言书籍显得不那么枯燥无味,而且可以使读者有更深刻的印象。我相信读者在阅读本书的过程中是比较轻松愉快的。
除了本人之外,本书主要的译者还有李好奇博士、柯睿博士和何叶博士。同时诚挚地感谢司亚卿副教授热心的指导和帮助,感谢张萌玥同学所提的宝贵意见。全书译文最终由我统稿。感谢各位译者几个月来的辛苦奋战!我们都有一个共同的目标——将它推荐给国内更多的读者。
由于该书涉及面广,译者能力有限,难免存在错误或遗漏,欢迎读者予以批评指正。
蒋家坤
2014年于柳林
Foreword 序 言
在过去的3年里,R语言的应用市场有了巨大增长。基于此,你可能会认为R是一个全新的、开始崭露头角的语言。令人吃惊的是,1993年就有R了。为何突然其人气就暴增了呢?一些明显的原因可能是数据科学作为一个职业和研究领域诞生了。但是数据科学的基础已经存在几十年了。统计、线性代数、运筹学、人工智能和机器学习,所有这些都成了科学家所使用的工具。R语言已经超过大部分语言,只需要一个简单的函数调用就可以完成大部分工具的功能。
R是许多数据科学工作中不可缺少的工具。许多对预测和分析非常有用的算法,在R中只需要简单的几行代码就可以完成,这使得R非常适合解决现代数据所面临的挑战。数据科学不仅仅只和数学、统计有关,也不仅仅只和编程、基础结构有关。针对普通大众读者,这本书比较平衡地介绍了R的强大功能和丰富的表现力。
我想不出比Jared Lander更适合写一个R语言介绍的人。我和他第一次见面是在2009年年末举行的纽约城机器学习论坛上。那时候,纽约城机器学习论坛很小,只需要一个小会议室就可以了,那时许多其他数据组织都还没有建立。在过去的4年里,Jared一直站在新型数据科学职业的最前沿。
通过管理开放统计编程聚会(Open Statistical Programming Meetup)、在活动中演讲、在哥伦比亚大学教R课程,Jared以程序员、数据科学家、记者、统计学家等等身份帮助发展了许多论坛社区。但是Jared的专长不仅仅是教学。作为一个日常工作者,他也使用这些工具解决客户咨询中的各种问题。
这本书不仅介绍了R语言的编程,还介绍了日常R编程者所用的一些统计方法和工具。本书中的示例使用了一些公开的数据集,并且Jared对其进行了整理,然后放在自己的网站上(jared lander.com)。通过使用实际数据和建立实际有趣的问题,这本书将会非常实用。
Paul Dix
英文丛书编辑
前 言 Preface
随着日常生活中数据应用变得越来越普遍,我们需要新的和更好的工具来应对这个趋势。在传统情况下,处理数据的方式一般有两种:一是简单轻便的,使用像Excel 或 SPSS 这样的工具做定量分析;二是复杂繁重的,利用C++这样的工具进行高性能分析。随着个人计算机性能的提高,产生了一种既交互又强健有效的折中方法。个人在自己的计算机上以探索性的方式所做的分析,很快就会转变为传递到支撑高级业务流程的服务器的东西。这便是R、Python和其他脚本语言的领域。
R语言是由奥克兰大学的 Robert Gentleman 教授和Ross Ihaka教授于1993年开发的,其源自于贝尔实验室John Chambers 所开发的S语言。它是一种高水平语言,最初的目的是进行交互式运算,即使用者输入一个命令得到一个结果,然后再输入下一个命令。它已经发展成为一种语言,这种语言也可以嵌入系统和解决复杂的问题。
除了转换数据和分析数据,R语言还能很方便地产生令人惊喜的图形和报告。它现在已经成为一个完整的体系,可以用于数据分析、提取和转换,模型拟合,描述推断,预测,绘图以及给出报告结果。
自2000年末期以来,R语言的普及就像飞升的火箭一路飙升,它已经走出了学术界,进入银行业、销售业、制药业、政界、基因组学等其他许多领域。R语言的很多新用户以前都使用一些低级编译语言程序,比如C++和其他的统计包(例如SAS或SPSS),还有些之前使用“800磅重的大猩猩”—— Excel。这时期相应的软件包的数量迅速飙升,这些软件包是预先写好的代码库,用于扩展R的功能。
尽管R有时会让初学者感到畏惧,特别是那些没有编程经验的人,但是我发现用编程分析来代替操作,学习过程很快就变得容易得多,而且更方便、更可靠。这正是我的目标:让学习变得更快、更容易。
这本书内容的安排和布局是按照我在研究生院学习R时希望能够被教导的方式来实现的。综合来说,这本书的目录是结合我在哥伦比亚大学所教的一门数据科学课程所形成的。这并不是意味着覆盖R的每一个细枝末节,而在于用20%的功能去完成80%的工作。本书的内容包括如下章节。
第1章涉及从哪里下载R,如何安装不同的操作系统以及32位和64位版本的问题。该章还给出了安装R的路径的一些建议。
第2章的内容包括如何整合RStudio和Git,比如RStudio的个人定制和连接。
第3章涉及如何定位、安装和加载R语言包。
第4章详细说明变量的类型,如数字、字符、日期以及向量。该章还简要介绍了调用函数和寻找函数文件的功能。
第5章介绍最强大和常用的一些数据结构,如数据框、矩阵和列表。
第6章的内容涉及读取数据到R中。数据在分析之前必须读入R。目前有许多方法来读入数据,包括CSV格式文件的数据和数据库。
第7章的内容涉及统计图形。图形是数据初步分析和交流结果的一个关键部分。R语言能用其强大的绘图工具绘制出美丽的图形。该章将详细介绍基本绘图和ggplot2。
第8章介绍使用自定义的函数,可重复性分析往往变得更加容易。该章讨论结构、参数和返回规则。
第9章介绍如何使用if和ifelse以及复杂的语句控制程序的流程。
第10章介绍使用for和while循环迭代。虽然这些通常令人沮丧,但是知道它们很
重要。
第11章的内容涉及群组操作。一个比循环更好的选择是向量化。向量化并没有用循环去遍历数据,而是一次性,操作所有元素,这是更有效的,其主要使用apply函数和plyr包。
第12章介绍数据整理。合并多个数据集,无论是通过叠加还是加入,通常有必要重塑数据。除了像rbind、cbind和merge这些基本的工具,plyr包和reshape2包也提供了解决问题的很好的办法。
第13章介绍操作字符串。多数人不会将字符数据和统计联系起来,但它是一个重要的数据形式。R提供了大量工具来处理字符串,包括合并字符串和从中提取信息。该章将会正式详细地介绍这些内容。
第14章介绍概率分布。全面回顾正态分布、二项分布和泊松分布。你需要记下许多分布的函数形式和表达式。
第15章涉及基本统计。该章介绍了统计学的一些基础知识,例如均值、标准差和t-检验。
第16章介绍线性模型。线性模型是统计中最强大和最常用的工具,该章将会详细地介绍。
第17章涉及广义线性模型。线性模型的扩展包括logistic回归和泊松回归。该章还会介绍生存分析。
第18章介绍模式诊断。用残差、AIC准则、交叉验证、自助法和逐步变量选择来决定模型的质量以及变量选择。
第19章介绍正则化和压缩。使用弹性网格和贝叶斯方法来防止过度拟合。
第20章涉及非线性模型。当线性模型不合适时,非线性模型是一个很好的解决方案。该章将讨论非线性最小二乘、样条函数、广义可加模型、决策树和随机森林。
第21章介绍时间序列和自相关。分析单变量和多变量时间序列数据的方法。
第22章涉及聚类。通过K-均值和分层聚类等多种方法来聚类,即对数据进行分组。
第23章涉及用knitr包进行可重复性(reproducibility)、报告和幻灯片展示。在R中很容易用knitr、LATEX和Markdown产生报告、幻灯片和网页。
第24章涉及创建R包。R包是非常便携、可重用的代码。随着devtools包和Rcpp包的出现,构建R包已经简单得令人难以置信。
附录A包含进一步学习R的一系列资源,以及相互讨论的一系列社区。
这本书中的大量文本都是R代码或运行代码的结果。代码和运行结果通常在文本和集合中以特殊的字体单独分开,下面给出一个例子。不同代码的不同部分用不同灰度的文字表示。行代码开始于“>”,如果代码连续需要折行,则第二行以“+”开始。
学习R是一个很愉悦的过程,能让生活中许多工作变得容易得多。希望我们能一起来享受学习R的过程。
Acknowledgements 致 谢
首先,我必须感谢我的妈妈Gail Lander,她鼓励我选择数学专业。没有她的鼓励,
R语言:实用数据分析和可视化技术 下载 mobi epub pdf txt 电子书 格式
R语言:实用数据分析和可视化技术 下载 mobi pdf epub txt 电子书 格式 2024
R语言:实用数据分析和可视化技术 下载 mobi epub pdf 电子书资深数据专家凝炼数十年教学和实践经验,全面阐释如何使用R的20%功能完成80%的现代数据工作。
评分内容详实,值这个价钱。
评分这个商品不错这个商品不错这个商品不错
评分在学习R语言编程,参考书
评分好,好!很实用的书!!!!!
评分正在读着,但愿帮助!
评分给公司买的书,品质很棒,印刷很好,关键是速度很快。
评分好评!
评分好!!!!
R语言:实用数据分析和可视化技术 mobi epub pdf txt 电子书 格式下载 2024