1

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

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 -

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

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

4

1 回答 1

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" "-"
于 2013-10-31T18:13:45.790 回答