假设我有以下数据
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
并没有做我想做的事情。我应该使用什么功能?
3条答案
按热度按时间0ejtzxu11#
这听起来像是从“dplyr”中查找
dense_rank
--但应用顺序与rank
的正常顺序相反。试试这个:
nnsrf1az2#
当你需要将排名应用到所有变量(而不仅仅是一个)时,其他解决方案。
5vf7fwbs3#
@user101089 ---你可以用这个替代方法试试: