扩展 rank() 函数以 "奥林匹克风格" 排名

3
在奥运会上,如果两个人获得银牌并列第二,他们就不会颁发铜牌。
这是我正在处理的数据样本:
x <- c(0.64, 0.64, 0.63, 0.62, 0.62, 0.62, 0.61, 0.6, 0.6, 0.58)

我想创建一个能输出以下结果的排名函数:
rank.fun(x) 
1 1 3 4 4 4 7 8 8 10 

我已经尝试使用findIntervalrankfloorceiling等方法,但它们似乎都不能提供我想要的结果。
2个回答

12

你觉得这样怎么样: rank(-x, ties.method="min")


5

看起来您可以使用rank来完成这个操作:

> rank(-x, ties="min")
 [1]  1  1  3  4  4  4  7  8  8 10

1
答案是如此简单。叹气。 - Brandon Bertelsen
2
也许是这样,但当你不能立刻想到简单的解决方案时,通常很难看到它。 - Joshua Ulrich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接