如何使用dplyr在数据框中按行对值进行排序?

Pat*_*ada 2 r dplyr

问题很简单。我开始使用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)

我非常感谢您的帮助。谢谢!

mto*_*oto 6

我们可以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)