按索引排序空间矩阵

时间:2017-11-16 10:21:50

标签: r matrix indexing

我的矩阵空间有一些位置1,2,3和4

df<-matrix(data=c(0.00, 4.69, 12.63, 2.99, 4.69, 0.00, 17.30, 5.15, 12.63, 17.30, 0.00, 13.72, 2.99, 5.15, 13.72, 0.00), ncol=4) 
colnames(df)<-c(seq(1:4))
rownames(df)<-c(seq(1:4))
df

#    1     2     3     4
#1  0.00  4.69 12.63  2.99
#2  4.69  0.00 17.30  5.15
#3 12.63 17.30  0.00 13.72
#4  2.99  5.15 13.72  0.00

我想按每个空格行的等级按降序排序这个矩阵,所以得到

#       1     2     3     4
#1      1     2     2     2 
#2      3     1     4     3 
#3      4     4     1     4 
#4      2     3     3     1 

有关如何实现这一目标的任何建议?感谢。

2 个答案:

答案 0 :(得分:1)

我们可以使用/node_modules,因为每列都需要,我们遍历列(rankapply

MARGIN=2

答案 1 :(得分:1)

您可以使用colRanks包中的matrixstats,即

library(matrixStats)

t(colRanks(df))

给出,

      [,1] [,2] [,3] [,4]
[1,]    1    2    2    2
[2,]    3    1    4    3
[3,]    4    4    1    4
[4,]    2    3    3    1