我有一個矩陣mat
,看起來像:R獲取列的所有組合並在其上執行返回對稱矩陣的函數?
A B C D E F
1 0.74 1.19 0.01 1.21 16000 0.02
2 0.76 1.17 0.01 1.21 15500 0.02
3 0.79 1.16 0.01 1.17 15625 0.02
4 0.75 1.17 0.01 1.17 15600 0.02
5 0.80 1.19 0.01 1.19 15225 0.02
6 0.79 1.18 0.01 1.18 15625 0.02
而且我想通過應用功能Sum(Col1-Col2)
建立從這個對稱矩陣。最終結果將如下所示:
A B C D E F
A 0
B 0
C 0
D 0
E 0
F 0
這樣空白表示差異的總和。即[1,2] = Sum(A-B)
。
我已經調查的方法,如:
combs<-combn(names(mat),2)
val<-apply(combs,2,function(x) mat[[x[1]]]-mat[[x[2]]])
但它並沒有給我一個很好的對稱矩陣。
任何人有任何想法?
謝謝。
編輯 - 感謝特洛伊上述作品。但如果我想要計算Sum((Col1-Col2)^2)
那Sum(((A_1,A_2,..,A_n)-(B_1,B_2,..,B_n))^2)
(所以最初不能總計A
和B
然後減去否則答案將會關閉)。
感謝@alexis_laz,我編輯了這個問題,所以我需要一些進一步的幫助! :) –
@Ubobo:編輯幫助嗎? –
絕對是!就是這樣,謝謝。我剛剛制定了一個非常迂迴,毫無疑問是無效的方式。你的解決方案要好得多。謝謝! –