2017-11-23 9 views
2

내가 매트릭스 같은이 포함되어매트릭스 인덱스 그들은

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 

빠른 방법이 있습니까?

order는 지표로, 우리는 순서 붙이고 된 값의 행/열 인덱스를 얻기 위해 row와 '매트'의 colcbind를 재 배열하여 사전

답변

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 
+0

정말 감사합니다 @lukeA! – R18

3

에 감사

i1 <- order(mat) 
cbind(row(mat)[i1], col(mat)[i1]) 
#  [,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

고맙습니다 @akrun! – R18