R语言中order函数的用法,对数据框进行排序
1、order函数用于返回向量大小顺序的秩。
测试:
a <- c(3,5,2,0)
order(a)
代码效果:
b <- c(200,600,800,400,100)
order(b)
代码效果:
可见 order函数默认用于返回向量从下到大排序在原始向量中的位次(秩)。
2、加参数decreasing = T,降序排列
测试:
a <- c(3,5,2,0)
order(a,decreasing = T)
代码效果:
b <- c(200,600,800,400,100)
order(b,decreasing = T)
代码效果:
3、利用以上order函数的性质可以实现对数据框的排序
创建测试数据框:
a <- c(3,7,5,2,9)
b <- c(9,3,7,8,1)
c <- c(3,7,8,2,5)
d <- data.frame(a,b,c)
d
代码效果:
利用order函数对数据框的任意一列进行排序:
order(d$a)
代码效果:
实现了按照第一列数据大小排序的位次。
按照数据框的a列进行排序:
d[order(d$a),]
代码效果:
按照数据框的b列进行排序:
d[order(d$b),]
代码效果:
加decreasing=T 选项,实现a列降序排列:
d[order(d$a,decreasing = T),]
代码效果:
实现b列降序排列:
d[order(d$b,decreasing = T),]
代码效果:
4、对数据框的多列数据同时进行排序
创建测试数据:
a <- c(3,3,3,2,9)
b <- c(9,3,7,8,1)
c <- c(3,7,8,2,5)
d <- data.frame(a,b,c)
d
代码效果:
利用order函数对d的a列进行排序:
order(d$a)
代码效果:
按照a列进行排序:
d[order(d$a),]
代码效果:
发现排序的a列有相同的数字3,实现按照a列排序后,继续按照b列进行排序:
d[order(d$a,d$b),]
代码效果:
实现a列和b列降序排列:
d[order(-d$a,-d$b),]
代码效果:
实现a列升序 b列降序排列:
d[order(d$a,-d$b),]
代码效果: