在数据分析中,往往会遇到各种复杂的数据处理操作:分组、排序、过滤、转置、填充、移动、合并、分裂、去重、找重、填充等操作。这时候R语言就是一个很好的选择:R可以高效地、优雅地解决数据处理操作。(本章节为R语言入门第二部分总结篇:数据操作)
本章内容布局思路:思来想后,想到SQL查询的查询思路可以作为本章节的布局思路
1.了解表结构/数据结构
2.对表中的一些数据做出修改、替换、甚至生成新字段
3.from:数据合并/连接
4.where:条件筛选/过滤
5.group:分组
6.having和select:呈现不明显
7.order:排序
8.其他补充
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(补充)
> x > x [1] 1 2 3 4 5 6 7 8 9 10
1.2 矩阵 Matrix: matrix()
#矩阵用法matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL) #表示生成1行,1列的一个矩阵,其中仅仅包含一个元素“NA”#---示例---#> matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE, dimnames = list(c("row1", "row2"), c("C.1", "C.2", "C.3"))) C.1 C.2 C.3row1 1 2 3row2 11 12 13#nrow = 2和ncol = 3 定义2x3的2行3列矩阵#byrow = TRUE 是控制矩阵中的数据c(1,2,3, 11,12,13)按照行的顺序排列,默认按照列排列#dimnames = list(c("row1", "row2"), c("C.1", "C.2", "C.3")) 定义矩阵行名和列名
1.3 数据框 DataFrame: data.frame()
#其中" > x :15) > y :5) #将向量x和y合并存储到数据框中,并重命名为xf和yf> data.frame(xf = x, yf = y) xf yf1 11 12 12 23 13 34 14 45 15 5
1.4 时间序列 XTS: xts()
> library(xts)> x 11:> xts(x,order.by=as.Date('2019-09-14')+1:5) [,1]2019-09-15 112019-09-16 122019-09-17 132019-09-18 142019-09-19 15
关于xts类型的详细介绍,请参考文章《可扩展的时间序列xts》http://blog.fens.me/r-xts/
1.5 因子Factor:factor(补充)可以理解为分类变量
#factor是numeric数值类型
#factor(x = character(), levels, labels = levels,exc