でrcorr()を使用している2つの行列の間でうまくいけば、この記事は重複していませんが、検索にかなり時間を費やして答えを見つけることができませんでした。ペアワイズ比較のみ比較R
私は、このように見える2つの行列を対の相関関係にしようとしています。
Matrix 1
gene1 gene2 gene3
ID1 12 32 43
ID2 94 34 95
ID3 90 54 23
ID4 43 76 65
Matrix2
TE1 TE2 TE3
ID1 94 90 82
ID2 23 46 94
ID3 23 49 39
ID4 39 34 46
私は唯一のペアごとの方法で、行列間の比較を行い、ベース関数COR()を使用して、R^2つの値のテーブルを取得することができますよ。結果は次のようになります。
gene1 gene2 gene3
TE1 0.98 0.48 0.45
TE2 0.77 0.46 0.76
TE3 0.45 0.56 0.76
どれが素晴らしいですか?しかし、問題は私もp値が必要なので、私は実際の行列が[30,800]と[30,1000]であるため、特定のカットオフより小さいp値しか持たない行列にカットすることができます。データを分かりやすくする)。
rcorr()パッケージは、相関の行列r
、p値の行列P
、および観測数のベクトルを生成するので、これは素晴らしいです。しかし、私はBETWEEN行列だけを比較する方法を見つけ出すことができませんでした。それはまたWITHIN行列を比較します。
gene1 gene2 gene3 TE1 TE2 TE3
gene1 1.0 0.5 0.5 0.5 0.3 0.9
gene2 1.0 0.4 0.7 0.7 0.5
gene3 1.0 0.8 0.8 0.5
TE1 1.0 0.8 0.2
TE2 1.0 0.7
TE3 1.0
これはデータを構成していますが、その点を示しています。これにより、実際に必要なデータが2倍になり、計算が遅くなるだけでなく、視覚的にナンセンスな相関グラフが生成されます。
私の質問は次のとおりです。Hciscパッケージ関数rcorr()を使用する行列内ではなく、その間だけを比較する方法はありますか?
私はまた、行列のリストにcor.testを試してみた:
cor.test(c(matrix1),c(matrix2), method="pearson")
を私は'x' and 'y' must have the same length
というエラーが発生します。
次に、高い相関性と低いp値のリストに基づいてマトリックスを実際にサブセット化する方法を理解する必要がありますが、ここで役立つ回答がいくつかあります。
私はこの答えを受け入れるでしょう。それは機能しているので、今後使用するかもしれません。ありがとうございました!しかし、私はrcorr()を使って最後に同じことをやっていました。このブログの投稿からの機能[リンク](http://www.sthda.com/english/wiki/correlation-matrix-a-quick-start - ガイド・ツー・アナリシス・フォーマット・アンド・ビジュアライゼーション・アソシエーション・マトリックス・リサーチ・ソフトウェア(analytic-a-correlation-matrix-r-software))。 私は、ペアワイズ比較のpvaluesと相関値を抽出し、名前からの文字列特性を使用して、私が望むペアワイズ比較以外のすべてを除外し、次に 'dcast() 'を使って行列を作成しました。 – lmrta