有效地重新排序非对称方阵

时间:2013-10-31 18:00:32

标签: r

我有一个非对称矩阵,方形(等维),如下:

m <- matrix(LETTERS[1:25], ncol=5, dimnames = list(1:5, 1:5))
diag(m) <- "-"
print(m, quote=FALSE)

  1 2 3 4 5
1 - F K P U
2 B - L Q V
3 C H - R W
4 D I N - X
5 E J O T -

我想以不同的顺序指定行/列,如下所示:

new <- c(1, 5, 3, 2, 4)

最终的未引用输出如下所示:

  1 5 3 2 4 
1 - U K F P
5 E - O J T
3 C W - H R
2 B V L - Q
4 D X N I -

如何有效地重新排序这样的矩阵,这可以推广到其他类似的非对称方形矩阵?

我能想到的唯一方法就是手工制作,但这很愚蠢,因为我怀疑可能有一种方法可以很容易地做到这一点。

1 个答案:

答案 0 :(得分:4)

我想我在这里遗漏了一些东西,但你不能仅仅参考指数吗?

> m[new,new]
  1   5   3   2   4  
1 "-" "U" "K" "F" "P"
5 "E" "-" "O" "J" "T"
3 "C" "W" "-" "H" "R"
2 "B" "V" "L" "-" "Q"
4 "D" "X" "N" "I" "-"