矩阵索引按其包含的值排序

R18*_*R18 2 r matrix cell

我有一个像这样的矩阵:

 mat<-matrix(c(10,45,2,15,3,98,1,7,13),nrow = 3)

mat
     [,1] [,2] [,3]
[1,]   10   15    1
[2,]   45    3    7
[3,]    2   98   13
Run Code Online (Sandbox Code Playgroud)

我想得到有序值的索引,我们可以得到order(x, arr.idx = T)但应用于矩阵.那是:

   [,1]  [,2]
     1    3
     3    1
     2    2
     2    3
     1    1
     3    3
     1    2
     2    1
     3    2
Run Code Online (Sandbox Code Playgroud)

它有快速的方法吗?

先感谢您

luk*_*keA 5

您可以使用

arrayInd(order(mat), dim(mat), dimnames(mat))
#      [,1] [,2]
# [1,]    1    3
# [2,]    3    1
# [3,]    2    2
# [4,]    2    3
# [5,]    1    1
# [6,]    3    3
# [7,]    1    2
# [8,]    2    1
# [9,]    3    2
Run Code Online (Sandbox Code Playgroud)