我想基于多个其他列(例如SQL中的rank() over (order by a, b)
)向我的数据框添加一个(密集)等级列。在R中,rank
函数仅接受一列,因此mutate(df, rank(a, b))
引发错误。 order_by
函数也只接受一列。
因此,给出此数据框:
d <- data.frame(a = c(1, 1, 1, 2), b = c(1, 1, 2, 2))
...我想要一个像这样的排名:
a b rank
1 1 1
1 1 1
1 2 2
2 2 3
我的实际数据框要大得多,并且排名需要超过不同类型的多列(主要是字符串和双精度)。