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