単一の基準が適切に順序付けられている場合、ランク関数は明白なものを返します。
rank(c(2,4,1,3,5))
[1] 2 4 1 3 5
単一の基準に同点がある場合、ランク関数(デフォルト)は平均ランクを同点に割り当てます。
rank(c(2,4,1,1,5))
[1] 3.0 4.0 1.5 1.5 5.0
ランク関数では複数の基準で並べ替えることができないため、別のものを使用する必要があります。これを行う1つの方法は、一致と順序を使用することです。同点のない単一の基準の場合、結果は同じです。
rank(c(2,4,1,3,5))
[1] 2 4 1 3 5
match(1:5, order(c(2,4,1,3,5)))
[1] 2 4 1 3 5
ただし、同点の単一の基準の場合、結果は異なります。
rank(c(2,4,1,4,5))
[1] 2.0 3.5 1.0 3.5 5.0
match(1:5, order(c(2,4,1,4,5)))
[1] 2 3 1 4 5
同点の要素には、同じランクが割り当てられるのではなく、元の順序が保持されるように、同点が解除されます。この機能は、明らかに、複数の基準でソートする場合に一般化されます。
match(1:5, order(c(2,4,1,4,5),c(10,11,12,11,13)))
[1] 2 3 1 4 5
最後に、質問:関係を維持する複数の基準を使用してランクを計算する単純な、または組み込みの方法はありますか?私はそれを行うための関数を書きましたが、それは醜く、そのような基本的な機能のために途方もなく複雑に見えます...