2017-10-03 5 views
-1

cor関数を使用してRで相関行列を作成しました。並べ替え相関行列R

この行列から、対応する行と列のインデックスを持つ10の最大値(1に最も近い)と10の最小値(-1に最も近い)を抽出したいと思います。ここで

は、私は、相関行列を求めていますかのサンプルコードです:

xs = rnorm(10000) 
ys = rnorm(10000) 
zs = rnorm(10000) 

cor1 <- cor(data.frame(xs,ys,zs)) 

私が取得:

 xs   ys   zs 
xs 1.00000000 -0.01077785 -0.01308803 
ys -0.01077785 1.00000000 0.01176254 
zs -0.01308803 0.01176254 1.00000000 

任意の提案ですか?

ありがとうございます!

+0

これだけでした。ありがとう。 –

答えて

1

matがあなたの相関行列である場合、あなたはこのような上部と下部10の位置を取得することができます...

min10 <- which(mat<=sort(mat)[10], arr.ind = TRUE) 
max10 <- which(-mat<=sort(-mat)[10], arr.ind = TRUE) 

これらの各列は、行と列のあるn x 2行列であり、その基準に合致する要素の数はmatです。

+0

こんにちは。ありがとう、それはとても役に立ちました。あなたはmax10を得るための負の符号の動機づけを説明してください。 –

+1

'sort'は昇順にソートされるため、負の符号は降順でソートする方法です –