在数据分析中,往往会遇到各种复杂的数据处理操作:分组、排序、过滤、转置、填充、移动、合并、分裂、去重、找重、填充等操作。这时候R语言就是一个很好的选择:R可以高效地、优雅地解决数据处理操作。(本章节为R语言入门第二部分总结篇:数据操作)
本章内容布局思路:思来想后,想到SQL查询的查询思路可以作为本章节的布局思路
1.了解表结构/数据结构
2.对表中的一些数据做出修改、替换、甚至生成新字段
3.from:数据合并/连接
4.where:条件筛选/过滤
5.group:分组
6.having和select:呈现不明显
7.order:排序
8.其他补充
目录
1. 初识R语言支持的数据类型
1.1 向量 Vector : c()
1.2 矩阵 Matrix: matrix()
1.3 数据框 DataFrame: data.frame()
1.4 时间序列 XTS: xts()
1.5 因子Factor:factor(补充)
2.查看数据概况
summary()和str()
3.修改/替换/重定义数据
4.数据合并
3.1 向量合并
3.2 cbind列合并(等长)
3.3 rbind行合并
3.4 merge
3.5 补充:集合操作
4.过滤/筛选
4.1 缺失值处理
4.2 数据增减
4.3 数值分段cut
5.分组操作
5.1 aggregate语法
5.2 aggregate分组计算
5.3 aggregate分组计算(formula形式)
6. 排序order
7. 计数table
8. 分裂split
9. 去重与找重unique
10.转置
1. 初识R语言支持的数据类型
开始之前,需要先了解一下R语言支持的数据类型,以及这些常用类型的特点。以下4种类型是最常用的:向量、矩阵、数据框、时间序列。
可参考
R语言|第2讲:生成数据
R语言快速入门:数据结构+生成数据+数据引用+读取外部数据
向量 Vector : c()
矩阵 Matrix: matrix()
数据框 DataFrame: data.frame()
时间序列 XTS: xts()
因子Factor:factor(补充)
(图片来自于粉丝日志)
1.1 向量 Vector : c()
1.2 矩阵 Matrix: matrix()
1.3 数据框 DataFrame: data.frame()
1.4 时间序列 XTS: xts()
关于xts类型的详细介绍,请参考文章《可扩展的时间序列xts》http://blog.fens.me/r-xts/
1.5 因子Factor:factor(补充)
可以理解为分类变量
2.查看数据概况
在R中查看数据概况的函数常用summary()和str()。
其中,summary更多的是描述统计,返回:最大最小、四分位数、均值、中位数等;
而str更多的是查看数据(变量)结构,返回:数据集维度数,列变量类型等。
summary()和str()结合使用可以对数据概况作出初步了解。
3.修改/替换/重定义数据
修改指定单元格,修改指定列,within 关联修改
4 数据合并
数据操作中,数据(集)合并是经常被用到。例如:合并来源不同,结构相似的两个表格
3.1 向量合并
3.2 cbind列合并(等长)
总结:cbind等行数、按列合并(无序)
3.3 rbind行合并
总结:按行合并,需要注意数据集需要有相同的列字段名
3.4 merge
3.5 补充:集合操作
集合操作,是对2个向量的操作,处理2个向量之间的数值的关系,找到包含关系、取交集、并集、差集等。、
数据连接主要涉及到merge函数和dplyr包中的*_join等函数,
另外sqldf函数(SQL)亦可以实现数据连接功能。
4.过滤/筛选
过滤,是对数据集按照某种规则进行筛选,去掉不符合条件的数据,保留符合条件的数据。对于NA值的操作,主要都集中在了过滤操作和填充操作中,因此就不在单独介绍NA值的处理了。
可参考
R语言 | 第一部分:数据预处理
7.数据筛选和8.抽样
R语言数据管理与dplyr、tidyr | 第4讲
5 dplyr中5.1筛选filter和5.3选择select
R 语言 逻辑运算:TRUE/FALSE | 专题3
4.1 缺失值处理
4.2 数据增减
常见如以下不同方法
4.3 数值分段
数值分段,就是把一个连续型的数值型数据,按区间分割为因子类型的离散型数据。
5 分组操作
此处仅讲述aggregate数据分组计算内容,更多分组计算内容
dplyr包中的group_by联合summarize
group_by和summarise单变量分组计算
group_by和summarise多变量分组计算
ddply分组计算示例
5.1 aggregate语法
5.2 aggregate分组计算
5.3 aggregate分组计算补充(formula形式)
可以重点了解一下
6. 排序
#order默认升序,变量前加“-”代表降序
#排序的操作,大多都是基于索引来完成的
#用order()函数来生成索引,再匹配的数据的数值上面。
可参考
R语言 排序&去重操作 | 专题1
R语言 | 第一部分:数据预处理
7. 计数
计数,是统计同一个值出现的次数。
8 数据分裂
分裂计算,是把一个向量按照一列规则,拆分成多个向量的操作。有时候分裂split也被用于分组计算中。
另外,可以用因子类型来控制分裂。分成2步操作,第一步先分成与数据集同样长度的因子,第二步进行分裂,可以把一个大的向量拆分成多个小的向量。
9. 去重与找重
去重,是把向量中重复的元素过滤掉。找重,是把向量中重复的元素找出来。
可参考
R语言 | 第一部分:数据预处理
R语言 排序&去重操作 | 专题1
R 语言 逻辑运算:TRUE/FALSE | 专题3
10.转置
转置是一个数学名词,把行和列进行互换,一般用于对矩阵的操作。
领取专属 10元无门槛券
私享最新 技术干货