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

代码效果:

 

posted @ 2020-09-26 17:16  小鲨鱼2018  阅读(52514)  评论(0编辑  收藏  举报