我有一个像这样的矩阵:
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
我希望得到有序值的索引,就像我们可以从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
有没有快速的方法呢?
提前谢谢
答案 0 :(得分: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
答案 1 :(得分:3)
使用order
作为索引,我们重新排列'mat'和row
的{{1}}和col
以获取有序值的行/列索引< / p>
cbind