这个问题很简单。我开始使用 dplyr 但无法想出如何对每一行中的值进行排名的解决方案。最终目标是为每个值和每一行分配一个等级。我尝试了以下无效的方法:
mat_agg %>% rowwise() %>% mutate_each(funs(rank))
一个例子是:
matrix(c(1,0,0.5,0.5, 0, 1),nrow=2)
期望的结果是:
matrix(c(1,3,2,2, 3, 1),nrow=2)
我非常感谢任何帮助。谢谢!
最佳答案
我们可以结合使用apply()
和rank()
。我们取反 m
以获得降序,并转置输出以获得所需的结构。
t(apply(-m,1,rank))
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 3 2 1
关于r - 如何使用 dplyr 按行对数据框中的值进行排名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36158781/