r - 如何使用 dplyr 按行对数据框中的值进行排名?

标签 r dplyr

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

相关文章:

r - 在ggplot2中调整图例标题的位置和字体大小

python - 等效于 Python Pandas 中的 R rbind.fill

r - 使用 ifelse 和 group by 改变 data.table 中的列

R:如何在dplyr中进行条件计数?

R dplyr pivot wider with duplicates 并生成变量名

r Shiny 的 slider 输入轮

r - `pivot_longer` 操作 - 实现预期输出的更简单方法?

r - R 中维恩图的整齐格式,组大小不平衡

r - lubridate:与时区不一致的行为

r - dplyr 在列子集上突变(所有这些列上的一个函数组合)