《R in Action, Third Edition》是一本全面介绍 R 语言在数据分析和可视化方面应用的书籍,涵盖了从基础操作到高级统计分析和建模的丰富内容,旨在帮助读者掌握 R 语言并运用其解决实际数据问题。
核心要点总结
- R 语言基础与环境搭建
- 安装与界面:可从 Comprehensive R Archive Network(CRAN)免费获取并安装 R,RStudio 是常用的集成开发环境,提供了更便捷的编程、调试、可视化和报告编写功能。例如,通过 RStudio 的界面可以方便地管理工作空间、查看数据和运行结果。
- 数据结构:包括向量、矩阵、数据框、列表和 tibbles 等。向量是基本的数据存储单元,如
c(1, 2, 3)
;矩阵是二维数组,元素需具有相同模式;数据框可容纳不同模式的数据列,类似常见的数据集;列表可包含多种类型的对象;tibbles 是具有特定行为的数据框,在打印格式、变量处理等方面有优势。 - 函数与操作:使用
<-
进行赋值,#
添加注释。通过大量内置函数和用户可自定义函数实现数据处理和分析,如mean()
计算均值,sd()
计算标准差等。还可以利用循环(for
、while
)和条件(if-else
、ifelse
、switch
)语句控制程序流程。 - 包的管理:R 的强大功能依赖于众多的扩展包。可使用
install.packages()
安装包,如ggplot2
用于绘图,dplyr
用于数据处理;library()
加载包;help(package="package_name")
了解包的信息。
- 数据导入与管理
- 数据导入源:能从多种数据源导入数据,如键盘输入(
edit()
或read.table()
)、文本文件(read.table()
及readr
包中的函数)、Excel 文件(readxl
包)、统计软件文件(如haven
包用于导入 SPSS、SAS 等文件)、数据库(通过RODBC
等包)以及网络(如rvest
包用于网页数据抓取)。 - 数据清理与预处理:涉及处理缺失值(
is.na()
识别,na.omit()
删除含缺失值的行等)、日期转换(as.Date()
)、数据类型转换(如as.numeric()
、as.character()
)、变量创建与重编码(利用算术和逻辑运算)、数据集合并(merge()
、cbind()
、rbind()
)、排序(order()
)和子集选取(通过索引或subset()
函数)等操作。例如,在处理学生成绩数据时,可将不同科目的成绩标准化后合并为综合成绩指标。
- 数据导入源:能从多种数据源导入数据,如键盘输入(
- 数据可视化
- ggplot2 绘图基础:基于图形语法构建图形,首先用
ggplot()
指定数据源和变量映射,再通过geom_*()
函数添加几何对象(如geom_point()
绘制散点图、geom_bar()
绘制柱状图等)来创建图形。例如,绘制工人工资与经验的关系图时,先ggplot(data = CPS85, mapping = aes(x = exper, y = wage))
确定数据和变量映射,再添加geom_point()
展示数据点。 - 图形定制:包括分组(将变量映射到颜色、形状等美学属性)、设置刻度(
scale_*()
函数)、分面(facet_wrap()
或facet_grid()
按变量生成多个子图)、添加标签(labs()
)和应用主题(theme_*()
)等操作,可使图形更具表现力和可读性。
- ggplot2 绘图基础:基于图形语法构建图形,首先用
- 统计分析方法
- 描述性统计:使用
summary()
、sapply()
等函数计算均值、中位数、标准差等统计量,或借助Hmisc
、pastecs
、psych
等包的函数获取更详细的描述性统计信息。同时,可通过table()
、xtabs()
等函数生成频率表和列联表来分析分类变量。 - 相关性与回归分析:
cor()
和cov()
函数计算变量间的相关性和协方差,可选择不同方法(如 Pearson、Spearman、Kendall)并处理缺失值。回归分析中,lm()
函数用于拟合线性回归模型(包括简单线性、多项式和多元线性回归),通过summary()
查看结果,利用回归诊断(如plot()
、car
包中的函数)评估模型假设,还可进行变量选择(逐步回归、全子集回归)和模型比较(anova()
、AIC 准则)。 - 方差分析及扩展:
aov()
函数拟合方差分析模型,包括单因素方差分析、协方差分析、双因素析因方差分析、重复测量方差分析和多变量方差分析等。通过 F 检验评估因素的显著性,使用多重比较方法(如TukeyHSD()
、glht()
)确定组间差异,并对模型假设进行检验(如正态性、方差齐性)。
- 描述性统计:使用
- 高级主题与应用拓展
- 缺失值处理:除简单删除含缺失值的观测外,还可使用
k-nearest neighbor
和random forest
等方法进行缺失值插补,提高数据质量。 - 数据重塑与聚合:
tidyr
包的gather()
和spread()
函数实现数据的长格式与宽格式转换,dplyr
包和aggregate()
函数用于数据聚合,便于进行不同形式的数据分析。 - 高级编程与报告生成:涉及编写自定义函数、使用非标准评估和可视化调试等高级编程技巧,以及利用
R Markdown
创建动态报告,实现可重复的数据分析流程。
- 缺失值处理:除简单删除含缺失值的观测外,还可使用
应用案例
- 医疗领域:在关节炎治疗研究中,通过导入数据、清理和转换(如处理缺失值、将字符变量转换为因子),利用列联表分析治疗方法与患者改善情况的关系,进行卡方检验评估变量独立性,并绘制柱状图直观展示结果,帮助医生了解不同治疗的效果差异。
- 商业领域:分析汽车燃油效率数据时,从 Excel 文件导入数据后,使用
dplyr
包进行数据处理(如创建新变量、筛选数据),通过ggplot2
绘制散点图、箱线图等探索变量关系,建立回归模型预测汽车油耗,为汽车制造商改进设计或消费者购车提供参考。 - 社会科学领域:研究各州犯罪率与人口、教育水平、经济状况等因素的关系时,先整合来自不同数据源的数据,进行数据清洗和标准化,再运用回归分析和方差分析方法,识别影响犯罪率的关键因素,为政策制定提供依据。
学习建议
- 对于初学者,先熟悉 R 语言的基本语法、数据结构和常用函数,掌握数据导入和简单数据管理操作,如创建数据集、处理缺失值等。
- 逐步学习数据可视化技巧,从简单图形绘制开始,理解如何通过图形展示数据特征和关系,同时学习基本的统计分析方法,如描述性统计和相关性分析。
- 随着学习深入,掌握回归分析、方差分析等高级统计方法,学会评估模型假设和解释结果,并了解数据重塑、缺失值处理等高级数据管理技术。
- 积极实践书中的示例代码,尝试在实际项目中应用所学知识,遇到问题多查阅文档和相关资料,参与 R 语言社区交流,提升编程和数据分析能力。