假设我有以下数据:
df = data.frame(name=c("A", "B", "C", "D"), score = c(10, 10, 9, 8))
我想添加一个新的列来显示排名。这是我的做法:
df %>% mutate(ranking = rank(score, ties.method = 'first'))
# name score ranking
# 1 A 10 3
# 2 B 10 4
# 3 C 9 2
# 4 D 8 1
然而,我的期望结果是:
# name score ranking
# 1 A 10 1
# 2 B 10 1
# 3 C 9 2
# 4 D 8 3
显然,rank
并不符合我的意图。我应该使用哪个函数?
desc(score)
,即使-score
也可以。Hadley 已经提醒过我几次了。 - hrbrmstrmin_rank
替代使用dense_rank
。 - jalapicgroup_by()
之外的项目中,将arrange(desc())
放在dense_rank()
之前是行不通的。这是我在尝试过程中发现的。 - phili_b