如何对来自多行和多列的数据进行排名?

How to rank data from multiple rows and columns?

示例数据:

>data.frame("A" = c(20,40,53), "B" = c(40,11,60))

R 中最简单的方法是什么

   A   B
1 20  40
2 40  11
3 53  60

到这个?

  A       B
1 2.0   3.5
2 3.5   1.0
3 5.0   6.0

我找不到让 rank() 或 frank() 在多个 rows/columns 上工作的方法,谷歌搜索“r rank dataframe”“r rank multiple rows”之类的东西只产生了关于如何排名多个 rows/columns 个人 ,这很奇怪,因为我怀疑这个问题之前一定已经回答过。

像下面那样尝试 rank

df[] <- rank(df)

df <- list2DF(relist(rank(df),skeleton = unclass(df)))

你会得到

> df
    A   B
1 2.0 3.5
2 3.5 1.0
3 5.0 6.0