R
中两个矢量X
,Y
之间的距离系数可以通过energy
包中的dcor(X,Y)
函数计算得到,我有一个矩阵Z
,如下所示
library(energy)
Z <- data.frame(Z1 = c(0.2, 3, 0.01, 3.4, 6),
Z2 = c(2.2, 3.5, 0.5, 0.3, 7.0),
Z3 = c(4.7, 0.003, 1.4, 0, 0.6))
我想创建所有组合的距离相关矩阵。我如何创建一个函数来执行此计算?最终结果必须如下所示
Z1 Z2 Z3
Z1 1 0.76 0.76
Z2 0.76 1 0.48
Z3 0.76 0.48 1
2条答案
按热度按时间u5rb5r591#
energy::dcor
似乎无法在stats::cor
这样的单个 Dataframe 上进行交叉计算。解决方法是使用outer
:2exbekwf2#
我们可以使用
combn
来计算所需的成对组合,然后转换为matrix
-因此,我们不必重复相同的计算