我有一个看起来像这样的向量:
> 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 是幂等的,这有点酷:
> 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
)