次のようなベクトルがあります。
> vec
[1] 1 1 2 5 10
私はこれを、同点がまだ同点である非オリンピックランキングの形式に変換しようとしていますが、その上に複数の同点がある場合でも、ランクは1つ離れていることが保証されています。
> f(vec)
[1] 1 1 2 3 4
それよりも:
> rank(vec,ties.method="min")
[1] 1 1 3 4 5
Rでこれを行う機能はありますか?値を因数に変換して因数をランク付けできることはわかっていますが、それは少し遠回りに思えます。(関数じゃないならこういうランキングの名前ってある?)
(おふざけ: これまでは気がつきませんでしたが、ランクが冪等であるように見えます。これはちょっとクールです:
> rank(vec,ties.method="min")
[1] 1 1 3 4 5
> rank(rank(vec,ties.method="min"),ties.method="min")
[1] 1 1 3 4 5
)