R语言排序三个基本函数:sort(),rank(),order()的用法
R语⾔排序三个基本函数:sort(),rank(),order()的⽤法
R语⾔排序三个基本函数:sort(),rank(),order()的⽤法
1、sort()
⽤法:sort(a,decreasing=T) 或 sort(a,decreasing=T)
其中,a为要排序的向量
# sort()排序,排序结果不可逆转
# 默认是升序
# decreasing为TRUE,表⽰降序
# decreasing为FALSE,表⽰升序
#排序后并不会修改原对象的值
#⽰例如下:
> a <- c(3,9,16,6,7,4,22,5,10,13)
> #sort()默认为从⼩到⼤(升序)排序,等同于decreasing=FALSE
> sort(a)
[1]  3  4  5  6  7  9 10 13 16 22
> sort(a,decreasing = F)
[1]  3  4  5  6  7  9 10 13 16 22
> #decreasing=TRUE,为从⼤到⼩(降序)排序
> sort(a,decreasing = T)
[1] 22 16 13 10  9  7  6  5  4  3
#排序并不会修改原对象的值,a仍为原来未排序的a
> a
[1]  3  9 16  6  7  4 22  5 10 13
2、order()
函数说明:返回的值表⽰位置,默认是升序,依次对应的是向量的最⼩值、次⼩值、第三⼩值…最⼤值
⽤法:order(a), a为要排序的向量
order(… = data, na.last = TRUE,decreasing = TRUE)
… 表⽰待排序向量
na.last 表⽰时候将NA值放在最后⾯(默认排序忽略NA)
decreasing 表⽰是否按照降序排序,默认升序。
> a <- c(3,9,16,6,7,4,22,5,10,13)
> order(a)
[1]  1  6  8  4  5  2  9 10  3  7
#说明:在向量a中,3是第⼀⼩的数,位置下标为1;4是第⼆⼩的数,位置下标为6;最⼤的数是22,位置下标为7
#a[order(a)] 等同于sort(a)
> a[order(a)]
[1]  3  4  5  6  7  9 10 13 16 22
3、rank()
⽤法:rank(a)
函数说明:指出当前向量中各元素⼤⼩的排名,默认升序
函数还有其他的参数:rank(x = data, na.last = TRUE)
x 表⽰待排序的向量
na.last 表⽰是否排序时是否将NA放在最后⾯,默认忽略NA
> a
[1]  3  9 16  6  7  4 22  5 10 13
> sort(a)
[1]  3  4  5  6  7  9 10 13 16 22
> rank(a)
[1]  1  6  9  4  5  2 10  3  7  8
#说明:向量a中的第⼀个数为3,是最⼩的,故排名为1;第⼆个数是9,是第六⼩的数,排名为6
4、sort()、order()、rank()总体⽐较
> a <- c(3,9,16,6,7,4,22,5,10,13)
> a
[1]  3  9 16  6  7  4 22  5 10 13
> sort(a) #将a**从⼩到⼤排序并列出**
[1]  3  4  5  6  7  9 10 13 16 22
> order(a) #返回从⼩到⼤的数的**位置下标**,a[order(a)]=sort(a) [1]  1  6  8  4  5  2  9 10  3  7
> rank(a) #返回a中**每个数的排名(从⼩到⼤)**
[1]  1  6  9  4  5  2 10  3  7  8
> a
rank函数的用法[1]  3  9 16  6  7  4 22  5 10 13
#注意:经过sort()、order()、rank()排序后,a不改变

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。