R sort、rank、order、arrange排序函数

Python08

R sort、rank、order、arrange排序函数,第1张

R语言中排序有几个基本函数:sort()、rank()、order()、arrange()

一、总结

sort()函数是对向量进行从小到大的排序

rank()函数返回的是对向量中每个数值对应的秩

order()函数返回的值表示位置,依次对应的是向量的最小值、次小值、第三小值……最大值等(位置索引)

arrange()函数(需加载dplyr包)针对数据框,返回基于某列排序后的数据框,方便多重依据排序

二、具体用法

1.sort

2.order

(1) rank 函数是对一维度数组、向量x 进行排序。若x 为数值,则按照从小到大的原则进行排序。

P.S. 实际情况中,存在大量用二维表格描述的数据,比如行表示地点列表示时间的统计表,若进行排序,应先通过字符拼接的手段将表格转化为一维的向量,否则结果将失去意义。

(2) rank 将数据分为确定值与缺失值两种。缺失值可按先后排在确定值之间(na.last = FALSE), 也可排在之后(na.last = TRUE), 也可保留,不参与排序(na.last = "keep")。

(3) "first" 是最基本的排序,小数在前大数在后,相同元素先者在前后者在后。

"max" 是相同元素都取该组中最好的水平,即通常所讲的并列排序。

"min" 是相同元素都取该组中最差的水平,可以增大序列的等级差异。

"average" 是相同元素都取该组中的平均水平,该水平可能是个小数。

"random" 是相同元素随机编排次序,避免了“先到先得”,“权重”优于“先后顺序”的机制增大了随机的程度。

使用R包dplyr的函数arrange更简单,更简洁:

#多条件排序:使用dplyr::arrange

library(dplyr)

data("iris")

head(iris)

#第一列升序,然后是第三列升序

arrange(iris,iris[,1],iris[,3])

#第一列升序,然后是第三列降序

arrange(iris,iris[,1],-iris[,3])

扩展资料

R语言排序函数sort(),rank(),order()

>x<-c(97,93,85,74,32,100,99,67)

>sort(x)

[1]32677485939799100

>order(x)

[1]58432176

>rank(x)

[1]65431872