问题很简单。我开始使用dplyr,但无法提出如何对每一行中的值进行排名的解决方案。最终目标是为每个值和每一行分配一个等级。我尝试了以下无效的方法:
mat_agg %>% rowwise() %>% mutate_each(funs(rank))
Run Code Online (Sandbox Code Playgroud)
一个例子是:
matrix(c(1,0,0.5,0.5, 0, 1),nrow=2)
Run Code Online (Sandbox Code Playgroud)
理想的结果将是:
matrix(c(1,3,2,2, 3, 1),nrow=2)
Run Code Online (Sandbox Code Playgroud)
我非常感谢您的帮助。谢谢!
我们可以apply()与结合使用rank()。我们取反m以获得降序,然后转置输出以获得所需的结构。
t(apply(-m,1,rank))
# [,1] [,2] [,3]
#[1,] 1 2 3
#[2,] 3 2 1
Run Code Online (Sandbox Code Playgroud)