猜你喜欢
R语言:实用数据分析和可视化技术(原书第2版)

R语言:实用数据分析和可视化技术(原书第2版)

书籍作者:[美] 贾里德P.德 ISBN:9787111633624
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:4763
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书借鉴数据科学家Jared P Lander在R语言上丰富的教学经验,通过大量实例,详细讲解R语言的核心功能。对于刚接触统计程序和模型的人,本书的内容组织结构使得学习R语言相当简单和直观。本书主要介绍R语言中20%的核心功能,但是这20%的功能足以让你解决80%的现代数据分析。


书中每一章都是从基础知识开始,提供大量的实例和代码。你将学习下载和安装R语言;设置和使用R语言环境;掌握基本的程序编写,数据导入、操作和可视化;完成几个测验。然后在此基础上,你将构建几个完整的模型,包括线性和非线性模型,学习数据挖掘技术。接着你将在代码中学习使用LaTeX,RMarkdown和Shiny等R语言包。


前言

随着日常生活中数据应用变得越来越普遍,我们需要新的和更好的工具来应对这个趋势。在传统情况下,处理数据的方式一般有两种:一是简单轻便的,使用像Excel或SPSS这样的工具做定量分析;二是复杂繁重的,利用C++这样的工具进行高性能分析。随着个人计算机性能的提高,产生了一种既交互又强健有效的折中方法。个人在自己的计算机上以探索性的方式所做的分析,很快就会转变为传递到支撑高级业务流程的服务器的工作。这便是R、Python和其他脚本语言的领域。


R语言是由奥克兰大学的Robert Gentleman教授和Ross Ihaka教授于1993年开发的,它源于贝尔实验室John Chambers所开发的S语言。这是一种高级语言,最初的目的是进行交互式运算,即使用者输入一个命令得到一个结果,然后再输入下一个命令。现在它已经发展成为一种可以嵌入系统和解决复杂问题的语言。


除了转换数据和分析数据之外,R语言还能很方便地产生令人惊喜的图形和报告。它现在已经成为一个完整的体系,可以用于数据分析、提取和转换、模型拟合、描述推断、预测,绘图以及给出报告结果。


自21世纪头10年后期以来,R语言的普及就像飞升的火箭一路飙升,它已经走出学术界,进入了银行业、销售业、制药业、政界、基因组学等其他许多领域。R语言的很多新用户以前都使用一些低级编译语言程序,比如C++和其他的统计包(例如SAS或SPSS),还有一些用户之前使用“800磅重的大猩猩”—Excel。这时期扩展软件包的数量飙升,这些软件包是预先写好的代码库,用于扩展R的功能。


尽管R有时会让初学者感到畏惧,特别是那些没有编程经验的人,但是我发现用编程分析来代替鼠标操作,学习过程很快就变得容易很多,而且更方便、更可靠。这正是我的目标:让学习变得更快、更容易。


本书内容的安排和布局是按照我在研究生院学习R时希望能够被教导的方式来设计的。综合来说,本书的内容是结合我在哥伦比亚大学所教的一门数据科学课程所形成的。这并不意味着覆盖R的每一个细枝末节,而在于用20%的功能去完成80%的工作。


第2版更新了许多第1版出版之后开发的工具。主要新增加的有:Tidyverse中做数据处理的包dplyr、tidyr和purrr,模型拟合中的boosted tree,以及模型参数调优的caret包。knitr章节拆分成两章,分别介绍knitr包和LaTeX、RMarkdown。它们在过去几年得到了显著的改进,包括创建允许JavaScript和文档混用的htmlwidgets。接着用整章介绍Shiny,它被开发用来在R语言中创建交互式Web dashboard。编写R语言包的章节更新了代码测试部分。读取数据的章节更新了部分读取数据的新方法,包括readr、readxl和jsonlite包。这些更新的内容都是R语言社区实践的结果。本书的内容包括如下章节。


第1章涉及从哪里下载R,如何安装不同的操作系统以及32位和64位版本的问题。该章还给出了安装R的路径的一些建议。


第2章涵盖如何整合RStudio和Git,比如RStudio的个人定制和导航。


第3章讲解如何定位、安装和加载R语言包。


第4章介绍R处理数学问题:变量类型(如numeric、character、Date)、向量、调用函数等,也介绍了函数调用和查看函数文档。


第5章涵盖常用数据结构,数据框(dataframe)、矩阵和列表。


第6章涉及读取数据到R中。在分析数据之前,需要先将数据读取到R中,有多种方式可以获取数据,包括从CSV和数据库读取。


第7章介绍直观的统计图形。图形是数据分析和交流结果的关键部分。R语言能用来绘制漂亮的图形。该章将详细介绍基本图形和ggplot2。


第8章涉及通过用户自定义函数使可重复分析变得更容易。该章讨论了结构、参数和返回规则。


第9章介绍流程控制,包括if、ifelse和复杂的控制流程。


第10章介绍R语言的循环迭代,包括for和while循环。通常推荐使用这些结构,所以需要了解清楚。


第11章介绍一种比循环更好的方式:向量化。向量化并没有去循环遍历数据,而是一次性操作所有元素。这种高效的操作方式被用在plyr包和apply函数中。


第12章涉及高效的分组操作:dplyr,介绍下一代分组操作。这些新包已通过dataframes进行了优化,并从用于使高效代码更易读的管道获益。


第13章介绍数据迭代,用purrr包来迭代列表和向量。


第14章介绍数据集组合,通过叠加或者连接(join)的方式合并多个数据集,改变数据的形状。除了像rbind、cbind和merge函数这些基本工具外,plyr和reshape2包提供了很好的函数来完成这些功能。


第15章介绍使用dplyr和tidyr包代替plyr和reshape2包做数据组合、重塑和连接。


第16章介绍字符串操作。大部分人不会把字符数据和统计相联系,但它是一种重要的数据形式。R语言提供各种工具来处理字符串,包括将它们进行组合以提取信息。该章还详细介绍了正则表达式。


第17章涵盖概率分布,包括正态分布、二项分布和泊松分布。


第18章介绍统计学的一些基本知识,比如均值、标准差和t检验。


第19章讲解线性模型。线性模型是统计中最强大和最常用的工具。


第20章涉及广义线性模型,包括线性模型的扩展:逻辑回归和泊松回归。该章还覆盖了生存分析。


第21章讲解评估模型质量和变量选择的方法,比如残差、AIC准则、交叉验证、bootst


目录

译者序



前言


致谢


第1章 获取R语言 1


11 下载R语言 1


12 R语言版本 2


13 32位与64位 2


14 安装R语言 2


141 在Windows系统上安装 2


142 在Mac OS X系统上安装 5


143 在Linux系统上安装 8


15 微软开源R语言 10


16 小结 10


第2章 R语言环境 11


21 命令行界面 12


22 RStudio 13


221 RStudio项目 14


222 RStudio工具 16


223 Git集成 20


23 微软Visual Studio 22


24 小结 22


第3章 R语言包 23


31 安装R语言包 23


32 加载R语言包 25


33 构建R语言包 26


34 小结 26


第4章 R语言基础 27


41 基本数学运算 27


42 变量 28


421 变量赋值 28


422 删除变量 29


43 数据类型 30


431 数值型 30


432 字符型 31


433 日期型 32


434 逻辑型 32


44 向量 34


441 向量操作 34


442 factor向量 37


45 函数调用 38


46 函数文档 38


47 缺失数据 39


471 NA 39


472 NULL 40


48 管道 40


49 小结 41


第5章 高级数据结构 42


51 数据框 42


52 列表 48


53 矩阵 53


54 数组 56


55 小结 56


第6章 R语言读取数据 57


61 读取CSV文件 57


611 read_delim函数 59


612 fread函数 60


62 读取Excel数据 60


63 读取数据库数据 62


64 读取其他统计工具的数据 64


65 读取R语言二进制文件 65


66 读取R语言数据 67


67 读取网页数据 68


671 读取HTML表格 68


672 抽取网页数据 69


68 读取JSON数据 70


69 小结 72


第7章 统计图 73


71 基础统计图 73


711 基础直方图 74


712 基础散点图 74


713 箱线图 75


72 ggplot2 75


721 ggplot2:直方图和核密度曲线 76


722 ggplot2:散点图 77


723 ggplot2:箱线图和小提琴图 79


724 ggplot2:曲线图 82


725 主题 83


73 小结 84


第8章 编写R语言函数 85


81 Hello,World! 85


82 函数参数 86


821 默认参数 87


822 额外参数 87


83 返回值 88


84 docall函数 89


85 小结 89


第9章 控制语句 90


91 if和else语句 90


92 switch语句 92


93 ifelse函数 94


94 复合检查 95


95 小结 95


第10章 R语言的循环迭代 96


101 for循环 96


102 while循环 97


103 控制循环 98


104 小结 99


第11章 分组操作 100


111 apply函数族 100


1111 apply函数 100


1112 lapply和sapply函数 101


1113 mapply函数 102


1114 其他的apply函数 102


112 aggregate函数 103


113 plyr包 105


1131 ddply函数 106


1132 llply函数 108


1133 plyr的辅助函数 109


1134 速度与便利性 109


114 datatable包 109


1141 键值 113


1142 datatable聚合 115


115 小结 117


第12章 高效的分组操作:dplyr 118


121 管道 118


122 tbl数据类型 119


123 select函数 120


124 f?ilter函数 127


125 slice函数 131


126 mutate函数 132


127 summarize函数 135


128 group_by函数 136


129 arrange函数 137


1210 do函数 137


1211 dplyr使用数据库 139


1212 小结 140


第13章 数据迭代 141


131 map函数 141


132 特定类型的map函数 143


1321 map_int函数 144


1322 map_dbl函数 144


1323 map_chr函数 144


1324 map_lgl函数 145


1325 map_df函数 145


1326 map_if函数 146


133 数据框的迭代 147


134 map函数的多输入 148


135 小结 149


第14章 数据整理 150


141 cbind和rbind 150


142 连接 151


1421 合并 152


1422 plyr中的join 152


1423 合并表 156


143 reshape2 157


1431 melt函数 157


1432 dcast函数 159


144 小结 160


第15章 数据重构:Tidyverse 161


151 合并行和列数据 161


152 用dplyr包连接 162


153 行列变换 166


154 小结 169


第16章 字符串操作 170


161 paste 170


162 把格式数据写成串(sprintf) 171


163 提取文本 172


164 正则表达式 175


165 小结 181


第17章 概率分布 182


171 正态分布 182


172 二项分布 186


173 泊松分布 190


174 其他分布 192


175 小结 194


第18章 基本统计 195


181 概括性统计量 195


182 相关系数和协方差 198


183 t-检验 205


1831 单样本t-检验 206


1832 两样本t-检验 208


1833 两配对样本t-检验 210


184 方差分析 211


185 小结 213


第19章 线性模型 214


191 简单线性回归 214


192 多元回归 219


193 小结 234


第20章 广义线性模型 235


201 逻辑斯蒂回归 235


202 泊松回归 238


203 其他的广义线性模型 241


204 生存分析 242


205 小结 246


第21章 模型诊断 247


211 残差 247


212 模型比较 252


213 交叉验证 255


214 Bootstrap 259


215 逐步变量选择 262


216 小结 264


第22章 正则化和压缩 265


221 弹性网络 265


222 贝叶斯压缩 279


223 小结 282


第23章 非线性模型 283


231 非线性最小二乘法 283


232 样条插值 285


233 广义相加模型 288


234 决策树 293


235 boost树 295


236 随机森林 298


237 小结 299


第24章 时间序列和自相关 301


241 自回归移动平均模型 301


242 向量自回归 306


243 广义自回归异方差模型 311


244 小结 317


第25章 聚类 318


251 k-均值 318


252 PAM 325


253 分层聚类 329


254 小结 332


第26章 模型拟合调优:caret 333


261 caret介绍 333


262 caret选项 333


2621 caret训练控制 334


2622 caret网格搜索 334


263 boost树调优 335


264 小结 338


第27章 可重复性报告:knitr 339


271 安装LaTeX 339


272 LaTeX基础 340


273 knitr中使用LaTeX 342


274 小结 346


第28章 R语言文档:RMarkdown 347


281 文档编译 347


282 文档头信息 347


283 Markdown入门 348


284 Markdown代码块 350


285 htmlwidgets 351


2851 表数据 352


2852 leaflet 354


2853 dygraphs 356


2854 threejs 358


2855 d3heatmap 360


286 RMarkdown幻灯片 361


287 小结 362


第29章 交互式dashboard:Shiny 363


291 在RMarkdown中使用Shiny 363


292 Shiny中的响应表达式 366


293 服务端和UI界面 368


294 小结 376


第30章 构建R包 377


301 目录结构 377


302 包文件 378


3021 DESCRIPTION文件 378


3022 NAMESPACE文件 380


3023 其他包文件 382


303 包文档 384


304 测试 386


305 包的检查、构建和安装 388


306 提交至CRAN 389


307 C++代码 390


3071 sourceCpp 390


3072 编译包 392


308 小结 394


附录A 相关资源 395