R语言实战 (图灵程序设计丛书)-Robert I. Kabacoff
在线阅读 百度网盘下载(3lqs)
书名:R语言实战 (图灵程序设计丛书)
作者:Robert I. Kabacoff
格式:EPUB, HTMLZ, PDF
书号:9787115299901
路径:点击打开
排序作者:Kabacoff, Robert I.
排序书名:R语言实战 (图灵程序设计丛书)
日期:09 12月 2018
uuid:c7f74600-22d1-42c3-9fea-6b121578a959
id:524
出版日期:7月 2016
修改日期:09 12月 2018
大小:12.01MB
语言:中文
本书结构
本书的目的是让读者熟悉R平台,重点关注那些能马上应用到数据操作、可视化和理解的方法。全书共16章,分为4部分:“入门”、“基础方法”、“中级方法”和“高级方法”。在8个附录中还有更多的相关内容。
第1章首先简要介绍了R,以及它作为数据分析平台的诸多特性。这一章主要介绍了R的获取,以及如何用网上的扩展包增强R基本安装的功能。另外,它还介绍了用户界面,以及如何以交互方式和批处理方式运行程序。
第2章介绍了向R中导入数据的诸多方法。这一章的前半部分介绍了R用来存储数据的数据结构,以及如何用键盘输入数据。后半部分介绍了怎样从文本文件、网页、电子表格、统计软件和数据库向R导入数据。
很多用户最初接触R都是为了绘制图形,我们在第3章会对此作介绍。这一章介绍了创建、修改图形的方法,以及如何将图形保存为各种格式的文件。
第4章探讨了基本的数据管理,包括数据集的排序、合并、取子集,以及变量的转换、重编码和删除。
在第4章的基础上,第5章涵盖了数据管理中函数(数学函数、统计函数、字符函数)和控制结构(循环、条件执行)的用法。然后我们介绍如何编写自己的R函数,以及如何用不同的方法整合数据。
第6章演示了创建常见单变量图形的方法,例如柱状图、饼图、直方图、密度图、箱线图和点图。这些图形对于理解单变量的分布都很有用。
第7章首先演示了如何总结数据,包括使用描述统计量和交叉表。然后,这一章介绍了用于分析两变量间关系的基本方法,包括相关性、t检验、卡方检验和非参数方法。
第8章介绍了针对一个数值型结果变量与一系列数值型预测变量间的关系进行建模的回归方法,详细给出了拟合模型的方法、适用性评价和含义解释。
第9章介绍了基于方差及其变体对基本实验设计的分析。此处,我们通常感兴趣的是处理方式的组合或条件对数值结果变量的影响。这一章还介绍了如何评价分析的适用性,以及如何可视化地展示分析结果。
第10章详细介绍了功效分析。这一章首先讨论了假设检验,重点是如何判断在给定置信度的前提下需要多少样本才能判断处理的效果。这可以帮助我们安排实验和准实验研究来获得有用的结果。
第11章扩展了第5章的内容,介绍了创建表现两个或多个变量间关系的图形。这包括各种2D和3D的散点图、散点图矩阵、折线图、相关图和马赛克图。
第12章介绍了一些稳健的数据分析方法,它们能处理比较复杂的情况,比如数据来源于未知或混合分布、有小样本问题、有恼人的异常值,或者依据理论分布设计假设检验非常复杂且在数学上难以处理的情况。这一章介绍的方法包括重抽样和自助法——很容易在R中实现的需要大量计算机资源的方法。
第13章扩展了第8章中介绍的回归方法,分析非正态分布的数据。这一章首先介绍了广义线性模型,然后重点介绍了如何预测类别型变量(Logistic回归)或计数变量(泊松回归)。
多元数据分析的一个难点是简化数据。第14章介绍了如何将大量的相关变量转换成较少的不相关变量(主成分分析),以及如何发现一系列变量中的潜在结构(因子分析)。这些方法涉及许多步骤,每一步都有详细的介绍。
实际工作中面临的一个普遍问题是数据值缺失,第15章介绍了一个应对此问题的现代方法。R中有很多简捷的方法可以用来分析因各种原因导致缺失而生成的不完整数据。这一章对一些好的方法都有介绍,还具体说明了在什么情况下应该用哪一种以及应该避免使用哪些方法。
第16章介绍了R中最先进、最有用的数据可视化方法,包括用lattice图形表现非常复杂的数据,简要介绍新的ggplot2 包,并对各种跟图形实时交互的方法做了综述。
后记中介绍了一些优秀的网站,有助于读者进一步学习R、加入R社区、获得帮助,并及时获得R这个快速发展的软件的最新信息。
最后的内容也很重要,8个附录(从A到H)扩展了正文的一些内容,包括R中的图形用户界面、自定义和升级R、导出数据到其他软件、创建出版级质量的输出、(像MATLAB一样)用R做矩阵计算,以及处理大型数据集。
G.1 高效程序设计
下面是在处理大型数据时有助于提升性能的程序设计建议。
尽可能地做向量化计算。用R内建的函数来处理向量、矩阵和列表(例如sapply 、lapply 和mapply ),而且要尽量避免使用循环(for 和while )。
用矩阵,而不是数据框(矩阵更轻量级)。
在使用read.table() 系列函数将外部数据读取到数据框中时,明确的指定colClasses 和nrows ,设置comment.char = "" ,并且用"NULL" 标明不需要的列。这可降低内存使用量,显著地提高处理速度。在将外部数据读入矩阵时,可以用scan() 函数。
在完整的数据集上运行程序之前,请先用数据的子集测试程序,以便优化代码并消除bug。
删除临时对象和不再需要的对象。调用rm(list=ls()) 会从内存中删除所有的对象,得到一个干净的环境。要删除特定的对象,可以用rm( object ) 。
在Jeromy Anglim的博客文章“Memory Management in R: A Few Tips and Tricks”(jeromyanglim.blogspot.com )中介绍了.ls.objects() 函数,可以使工作空间中的所有对象按大小(MB)排列。这个函数可以帮你找到内存消耗的大户。
测试程序中每个函数所消耗的时间。用Rprof() 和summaryRprof() 函数就可以完成这个测试。system.time() 函数也能用得上。profr 和prooftools 包提供用于分析测试结果的函数。
如果需要进一步优化代码的话,Rcpp 包可以将R对象转换成C++函数。
在处理大数据时,提高代码性能也就只能这样了。在遇到内存限制时,我们还可以将数据保存到外部存储器中,并使用特殊的分析方法。
G.2 在内存外存储数据
有好几个包可以将数据保存到R的主内存之外。主要的方法是将数据保存到外部数据库中,或是硬盘上的二进制文件中,然后再按需要访问其中的某个部分。表G-1中列出了一些有用的包。
表G-1 用于访问大型数据集的R包
包 描 述
ff 提供了一种数据结构,可以将数据保存到硬盘上,但用起来却像是在内存中
bigmemory 支持大型矩阵的创建、存储、访问和操作。矩阵可以分配在共享内存和内存映射文件中
filehash 实现了一个简单的key-value数据库,用字符串的键值关联到硬盘上存储的数据值
ncdf 、 ncdf4 提供了Unidate netCDF数据文件的接口
RODBC 、 RMySQL 、 ROracle 、 RPostgreSQL 、 RSQLite 这些包每一个都可用于访问相应的外部关系型数据库管理系统
上面介绍的这些包都可用于解决R在保存数据时的内存限制问题。不过,在分析大数据时,还需要专门的方法以在可接受的时间内完成分析。下面会介绍其中最有用的一些。
G.3 用于大数据的分析包
R有如下几个用于分析大型数据的包。
biglm 和speedglm 包能以内存高效的方式实现大型数据的线性模型拟合和广义线性模型拟合。
有好几个包是用来分析bigmemory 包生成的大型矩阵的。biganalytics 包提供了k均值聚类、列统计和一个biglm 的封装。bigtabulate 包提供了table() 、split() 和tapply() 功能;bigalgebra 包提供了高级的线性代数函数。
biglars 包跟ff 配合使用,为在内存中无法放置的大数据提供了最小角回归(least-angle regression)、lasso和逐步回归分析。
Borbdingnag 包可以处理大数字(大于2的1024次方的数)。
在任何编程语言中,处理GB级和TB级的数据都是挑战。关于R中这方面方法的更多信息,可以查看CRAN上的这个Task View:High-Performance and Parallel Computing with R(cran.r-project.org/web/views/ )。
来源:我是码农,转载请保留出处和链接!
本文链接:http://www.54manong.com/?id=1173