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

これは、行列がrow.namesと列名の点で対称であることを意味し、行列も対称であるため(実際には隣接行列に取り組んでいるため、隣接行列が対称であることがかなり重要です.

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

これは、マトリックスが正方形で、行名が列名と同じであると仮定して機能します。両方をソートしたい場合は、アナンダの答えを使用してください(ただし、この特定のケースでは同じ結果が得られます)。


これはあなたが意味するものですか:

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 に答える