排名与R的领带

Reb*_*ang 4 r ranking

我列出了比赛中的竞争对手和积分值.许多竞争对手都被束缚了.我需要一种方法在R中对它们进行排名,例如,如果四个竞争对手排在第四位,输出可能如下所示:

Competitor A: 1 
Competitor B: 2
Competitor C: 3
Competitor D: 4
Competitor E: 4
Competitor F: 4
Competitor G: 4
Competitor F: 8
Run Code Online (Sandbox Code Playgroud)

所以在平局之后的下一个排名,而不是5,将是8(因为四个竞争者占据了4-7的位置).

我知道这有点反直觉,但如果有人有任何想法,我将非常感激.谢谢!

数据

v1 <- setNames(c(4, 5, 2, 7, 7, 7, 7, 9), paste('Competitor', LETTERS[1:8]))
Run Code Online (Sandbox Code Playgroud)

akr*_*run 5

我们可以使用min_rankdplyr

library(dplyr)
min_rank(v1)
#[1] 2 3 1 4 4 4 4 8
Run Code Online (Sandbox Code Playgroud)

或者在base R(来自@StevenBeaupré的评论)

rank(v1, ties.method = "min")
Run Code Online (Sandbox Code Playgroud)

数据

v1 <- c(4, 5, 2, 7, 7, 7, 7, 9)
Run Code Online (Sandbox Code Playgroud)