R语言-排序

2021-05-26  本文已影响0人  超级可爱的懂事长鸭
> rm(list=ls())

> a=sample(1:20,6,replace = F);a
[1] 11  5 14 19  3 20
> b=sample(1:30,6,replace = T);b
[1] 25 28 25  9 29  3
> c=sample(1:10,6,replace = T);c
[1]  8 10  7 10  9  3
> dat=data.frame(a,b,c);dat
  a  b  c
1 11 25  8
2  5 28 10
3 14 25  7
4 19  9 10
5  3 29  9
6 20  3  3



> ##sort
> #从小到大排序
> sort(a)
[1]  3  5 11 14 19 20
> #从大到小排序
> sort(a,decreasing = T)
[1] 20 19 14 11  5  3



> ##order
> order(a)#返回值为向量下标
[1] 5 2 1 3 4 6
> #从小到大排序
> a[order(a)]
[1]  3  5 11 14 19 20
> dat[order(dat$c,dat$a),]#c升序,若相同,则按照a升序
  a  b  c
6 20  3  3
3 14 25  7
1 11 25  8
5  3 29  9
2  5 28 10
4 19  9 10
> dat[order(-dat$c,dat$a),]#c降序,若相同,则按照a升序
  a  b  c
2  5 28 10
4 19  9 10
5  3 29  9
1 11 25  8
3 14 25  7
6 20  3  3



> #rank
> rank(a)
[1] 3 2 4 5 1 6
> #返回下标


> #arrange
> library(dplyr)
> arrange(dat,c,a)#同order
  a  b  c
1 20  3  3
2 14 25  7
3 11 25  8
4  3 29  9
5  5 28 10
6 19  9 10
上一篇下一篇

猜你喜欢

热点阅读