次の例のような2つの行列があります
マット1
row.names geneid1 geneid2 geneid3 geneid4 geneid5
sample1 0.99 8.76 8.78 7.65 5.4
sample2 5.6 6.76 7.4 9.08 8.2
sample4 7.5 6.4 6.4 6.1 8.6
マット2
row.names geneid1 geneid2 geneid3 geneid4 geneid5
sample1 0.98 8.76 8.78 4.65 5.4
sample2 0.6 6.76 1.4 9.78 6.2
sample4 9.5 9.4 3.4 5.1 8.0
それらの間の相関関係を見つけた場合
cormat<cor(mat1,mat2)
結果の行列はこのようになります
geneid1 geneid2 geneid3 geneid4 geneid5
geneid1 0.1 0.14 0.58 0.89 0.5
geneid2 0.6 -0.2 0.4 0.45 0.6
geneid3 0.5 0.7 0.3 -0.4 0.76
geneid4 0.65 0.64 0.76 0.45 0.7
geneid5 0.3 0.2 0.6 0.2 0.2
マトリックス内のしきい値 0.5 を超える値を選択し、残りの値を省略したいと思います。その値を超える行と列の遺伝子 ID 番号のみが必要です。使ってみた
which(cormat>0.5)
しかし、元のマトリックスでそれらにインデックスを付け、0.5 の値を超える行と列のみを保持する方法がわかりません。さらに分析するために相関性の高い値を選択できるインデックス作成以外の方法はありますか。