rank(x, na.last = TRUE,
ties.method = c("average", "first", "random", "max", "min"))
(1) rank 函数是对一维度数组、向量x 进行排序。若x 为数值,则按照小数在线大数在后的原则进行排序
P.S. 实际情况中,存在大量用二维表格描述的数据,比如行表示地点列表示时间的统计表,若进行排序,应先通过字符拼接的手段将表格转化为一维的向量,否则结果将失去意义。
(2) rank 将数据分为确定值与缺失值两种。缺失值可按先后排在确定值之间(na.last = FALSE), 也可排在之后(na.last = TRUE), 也可保留,不参与排序(na.last = "keep").
(3) "first" 是最基本的排序,小数在前大数在后,相同元素先者在前后者在后。
"max" 是相同元素都取该组中最好的水平,即通常所讲的并列排序。
"min" 是相同元素都取该组中最差的水平,可以增大序列的等级差异。
"average" 是相同元素都取该组中的平均水平,该水平可能是个小数。
"random" 是相同元素随机编排次序,避免了“先到先得”,“权重”优于“先后顺序”的机制增大了随机的程度。
比如,在100米赛跑中,甲乙丙三人的成绩为6.8s, 8.1s, 7.2s,那么用rank函数排序获得名次:
> rank(t <- c(6.8, 8.1, 7.2))
[1] 1 3 2
再如,甲乙丙三人考试得分为74,92,85,用同样方法取得名次会适得其反。当然,我们可以认为执行
> rank(-(s <- c(74, 92, 85)))
[1] 3 1 2
可以达到目的,但这并未改变rank函数的排序机制。