list排序sort降序_高效数据处理:排序行数据
在数据集中,列变量中常常会有缺失值、离群值等异常值,我们需要快速查找这些异常值;在进行数据可视化时,有时也需要按数据大小排序,然后进行绘图。这时就需要用到行排序,按数据的升序、降序排列可以快速找到一列数值的极值。dplyr包是数据处理很强大的一个包,包中的arrange()函数可以对数据进行排序。1. 数据准备1.1 创建数据集创建三个向量,并生成一个简单数据集。x11,2),tim...

在数据集中,列变量中常常会有缺失值、离群值等异常值,我们需要快速查找这些异常值;
在进行数据可视化时,有时也需要按数据大小排序,然后进行绘图。
这时就需要用到行排序,按数据的升序、降序排列可以快速找到一列数值的极值。
dplyr包是数据处理很强大的一个包,包中的arrange()函数可以对数据进行排序。
1. 数据准备
1.1 创建数据集
创建三个向量,并生成一个简单数据集。
x1 1,2), times = 4) # 生成一列重复数字c(1,2)4次的向量
x2 8, mean = 2, sd = 2) # 生成一列均值为2,标准差为2的数字向量
x3 1,6,8,4,NA,6,7,NA) # 向量中有2个缺失值
newdata # 生成数据框
newdata # 查看数据框
1.2 数据准备
install.packages("dplyr") # 安装包
library(dplyr) # 加载包
mydata # 转换数据集类型
mydata
2. arrange()函数介绍
arrange()函数接受一个数据框和一组作为排序依据的列名(或者更复杂的表达式)作为参数,具体用法为arrange(data, vars1,vars2,...),如果列名不只一个,那么就使用后面的列在前面排序的基础上继续排序。
arrange(.data, # tibble类型的数据框
..., # 输入不加引号的列变量名称,用逗号分开;或者包含列变量名的表达式
# 默认升序排列,使用desc()函数进行降序排列
.by_group = FALSE) # 为TRUE,则首先根据分组变量进行排序
3. 具体用法
- 升序排列
arrange(mydata, x1) # x1按升序排列
arrange(mydata, x1, x3) # 先按x1升序排列,再按x3升序排列
- 降序排列
arrange(mydata, desc(x1)) # x1按降序排列
arrange(mydata, desc(x1), desc(x3)) # 先按x1降序排列,再按x3降序排列
arrange(mydata, desc(x1), x3) # 先按x1降序排列,再按x3升序排列
两个变量以上的联合排序适合分组变量,两个以上的纯连续变量联合排序只会根据第一个连续变量排序。
- 缺失值排序
arrange(mydata, x3)
arrange(mydata, desc(x3))
与使用sort()进行基本排序不同,不管使用升序还是降序,缺失值总是排在最后面。
那么怎么把缺失值排前面了?
arrange(mydata, desc(is.na(x3)))
arrange(mydata, desc(is.na(x3)), x3)
5. 其他函数
同filter()行筛选函数一样,也有arrange_all()、arrange_at()、arrange_if()三个函数使行排序功能更加强大。
5.1 arrange_all()函数
arrange_all(.tbl, .funs = list(), ..., .by_group = FALSE)
选择数据集的所有列进行行排序。
arrange_all(mydata) # 选择所有列升序
arrange_all(mydata, desc) # 降序
5.2 arrange_if()函数
arrange_if(.tbl, .predicate, .funs = list(), ..., .by_group = FALSE)
.predicate参数:通过逻辑向量判断哪些列参与行排列,然后根据列进行行排序。
5.3 arrange_at()函数
arrange_at(.tbl, .vars, .funs = list(), ..., .by_group = FALSE)
可以通过.vars参数来指定哪些列进行行排序;
将包含列名称的字符型向量,列位置的数字型向量或NULL传递给.vars参数。
arrange_at(mydata, vars(x1,x2))
# 指定x1和x2进行升序排列
arrange_at(mydata, vars(1,2))
# 指定第1列和第2列进行升序排列
arrange_at(mydata, vars(1:2), list(~desc(.)))
# 指定第1列和第2列进行降序排列
参考资料:《R数据科学》2018
既往专辑
|
|
|
|
|
|
|
|
|
|
|
|

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐











所有评论(0)