R语言中order函数的用法,对数据框进行排序

2026-07-06 15:18:17

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),]

代码效果: