关于本书

如果你翻开了本书,那么很有可能是因为要做一些数据的收集、总结、转换、探索、建模、可视化或呈现方面的工作。如果确实如此,那么R完全能够满足你的需求!R已经成了统计、预测分析和数据可视化的全球通用语言。它提供各种用于分析和理解数据的方法,从最基础的到最前沿的,无所不包。

R是一个开源项目,在很多操作系统上都可以免费得到,包括Windows、Mac OS X和Linux。R还在持续发展中,每天都在纳入新的功能。此外,R还得到了社区的广泛支持,这个社区里既有数据科学家也有程序员,他们很乐于为R的用户提供帮助或建议。

R以能创建漂亮优雅的图形而闻名,但实际上它可以处理各种统计问题。基本的安装就提供了数以百计的数据管理、统计和图形函数。不过,R很多强大的功能都来自社区开发的数以千计的扩展(包)。

但这些好处都是有代价的。对于新手来说,经常遇到的两个基本难题就是:R到底是什么以及R究竟能做什么?甚至是经验丰富的R用户也常常发现一些他们之前闻所未闻的新功能。

本书是一本R指南,高度概括了该软件和它的强大功能。本书会介绍基本安装中最重要的函数,以及90多个重要扩展包中的函数。整本书都是围绕实际应用展开的,你将学会理解数据并能够与他人交流这种对数据的理解。通读本书,你应该会对R的原理和功能有基本的了解,并知道从什么地方学习更多的相关知识。你将能用各种技术实现数据的可视化,还能解决各种难度的数据分析问题。

读者对象

每一个要处理数据的人都应该读读本书,他们不需要任何统计编程或R语言知识背景。R语言新手完全能够读懂本书,而有经验的R老手也能在本书中发现很多实用的新东西。

没有统计背景,但需要用R操作数据、总结数据、绘制图形的读者会觉得第1章~第6章、第11章和第16章比较容易理解。第7章和第10章则需要读者学过一学期的统计学课程;第8章、第9章和第12章~第15章则需要读者学过一学年的统计学课程。不过,我尽可能地让每一章都能同时迎合数据分析新手和专家的需求,让所有人都能从中获益。

本书结构

本书的目的是让读者熟悉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做矩阵计算,以及处理大型数据集。

例子

为了让本书内容尽可能接近各个领域的实际情况,我从心理学、社会学、医学、生物、商业和工程等诸多领域选取了一些例子。所有的这些例子都不需要读者具备这些领域的专业知识。

这些例子中所使用的数据集是经过精心挑选的,因为它们不仅提出了有趣的问题,而且比较小。这样能让读者专注于技术,快速地理解所涉及的过程。在学习新方法时,数据集小是有好处的。

这些数据集有些是R基本安装中就有的,有些则可以通过网上下载软件包来获得。每个例子的代码都可以从www.manning.com/RinAction1下载。为了更好地理解本书中的内容,我建议读者在阅读本书时试试这些例子。

1 也可在图灵社区(www.ituring.com.cn)本书网页免费注册下载。——编者注

经常听人引用这么一句话:如果你问两个统计学家该如何分析一个数据集,你会得到三个答案。反过来说,每个答案都能让你更好地理解数据集。对于一个问题,我不会说某种分析方式是最好的,或者是唯一的。读者应该用本书中学到的技术动手分析数据,看看都能得到什么。R是交互式的,最好的学习方法就是自己尝试。

排版约定

下面是本书的排版约定。

  • 等宽字体用于代码清单。

  • 等宽字体还用于在一般的正文中表示代码或之前定义的对象。

  • 代码清单中的斜体表示占位符。你应该用自己问题中的文本和值来替换它们。例如,path_to_my_file就应该用该文件在你自己电脑上的实际路径来替换。

  • R是一种交互式语言,用提示符(默认是>)表示已经准备好读取用户的下一行输入。本书中的很多代码清单都是从交互式会话中截取的。当你看到代码是以>开头时,不要输入这个提示符。

  • 用行内注释作为代码注释(这是Manning图书的传统做法)。此外,有些注释会以有序项目符号的形式出现(如❶),它们对应稍后正文中对代码作出的解释。

  • 为了节约版面,让正文更紧凑,我们会在交互式会话的输出中加入一些空白,同时也会删除一些与当前讨论问题无关的文字。

作者在线

在购买本书英文版的同时,你便获得了访问Manning出版社运营的私密Web论坛的权限,在这里你可以发表图书评论、询问技术问题,还可以从作者或其他读者那里获得帮助。用浏览器访问www.manning.com/RinAction就可以访问和订阅这个论坛。这个网页说明了注册后如何访问论坛、能获得何种帮助以及论坛上的行为规范等信息。

Manning致力于为读者之间以及读者和作者之间提供一个良好的交流空间。作者对论坛的参与完全是自愿的,他们对AO论坛的贡献都是(无偿的)志愿行为。我们建议读者向作者提一些有挑战性的问题,作者对这样的问题会更有兴趣。

在本书英文版的整个销售期中,大家都可以从出版商的网站上访问AO论坛,阅读以前的讨论。

目录

  • 版权声明
  • 那些年,我们一起学过的R语言
  • 译者致谢
  • 前言
  • 关于本书
  • 关于封面图片
  • 第一部分 入门
  • 第1章 R语言介绍
  • 第2章 创建数据集
  • 第3章 图形初阶
  • 第4章 基本数据管理
  • 第5章 高级数据管理
  • 第二部分 基本方法
  • 第6章 基本图形
  • 第7章 基本统计分析
  • 第三部分 中级方法
  • 第8章 回归
  • 第9章 方差分析
  • 第10章 功效分析
  • 第11章 中级绘图
  • 第12章 重抽样与自助法
  • 第四部分 高级方法
  • 第13章 广义线性模型
  • 第14章 主成分和因子分析
  • 第15章 处理缺失数据的高级方法
  • 第16章 高级图形进阶
  • 后记:探索R的世界
  • 附录A 图形用户界面
  • 附录B 自定义启动环境
  • 附录C 从R中导出数据
  • 附录D 制作出版级品质的输出
  • 附录E R中的矩阵运算
  • 附录F 本书中用到的扩展包
  • 附录G 处理大数据
  • 附录H 更新R
  • 参考文献