次のようなデータフレームがあります。
x <- data.frame(Name=c("a", "b","c", "d", "e"),A=(1:5), B=(2:6), C=(7:11), D=c(1,1,1,1,1))
a vs b、a vs c、a vs d、a vs e、b vs a、b vs c、b vs d、b vs e....などのすべてのピアソン係数を含むデータフレームを取得したい(除く自己比較、すなわち aa、bb など)。
つまり、次のデータフレームを変更したい
A B C D
a 1 2 7 1
b 2 3 8 1
c 3 4 9 1
d 4 5 10 1
e 5 6 11 1
このような結果データフレームに
a b 0.989143436
a c 0.963282002
a d 0.93048421
a e 0.89585579
b c 0.9922798
b d 0.974216034
b e 0.951427811
c d 0.994675789
c e 0.982264673
d e 0.996357429
Plsは親切にこれを行う効率的な方法を教えてください.
編集
Michaelv2 の助けに感謝します。
提案されたコードに基づいて、結果は次のようになります。
X1 X2 value
1 A A 1
2 B A 1
3 C A 1
4 D A NA
5 A B 1
6 B B 1
7 C B 1
8 D B NA
9 A C 1
10 B C 1
11 C C 1
12 D C NA
13 A D NA
14 B D NA
15 C D NA
16 D D 1
エラーメッセージは「警告メッセージ: in cor(x[2:5], method = "pearson") : 標準偏差はゼロです」
コードを誤用したようです。この問題をさらに解決する方法を教えてください。ありがとうございました。