我有一个mat看起来像这样的矩阵:
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
这样空格代表差异的总和。IE[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再减去,否则答案将被关闭)。