1

我想让我的矩阵关于行名和列名对称,例如,我有一个矩阵

  > ma   
     a  b  c  d
  a  1  5  9 13
  c  9 10 11 15
  b  5  6 10 14
  d 13 14 15 16

我想让它像

  > ma   
     a  b  c  d
  a  1  5  9 13
  b  5  6 10 14
  c  9 10 11 15
  d 13 14 15 16

这意味着矩阵在行名和列名方面是对称的,并且列名相等,因此矩阵也是对称的(实际上我正在研究邻接矩阵,因此邻接矩阵对称非常重要。

4

1 回答 1

2

更新

ma[colnames(ma), ]
#    a  b  c  d
# a  1  5  9 13
# b  5  6 10 14
# c  9 10 11 15
# d 13 14 15 16

假设您的矩阵是正方形并且您的行名与您的列名相同,这将起作用。如果您希望对它们都进行排序,请使用 Ananda 的答案(尽管对于这种特殊情况,您会得到相同的结果)。


老的

你是这个意思吗:

ma[] <- apply(ma, 2, sort)
#    a  b  c  d
# a  1  5  9 13
# c  5  6 10 14
# b  9 10 11 15
# d 13 14 15 16

请注意,这个矩阵是对称的,但这只是因为其中的数据允许这种可能性。可能还有其他数据可以创建具有其他重新排序的对称矩阵,但这不是我的专长。在这里,我们在每列中按升序排列。

于 2014-02-26T19:08:22.837 回答