利用energy程序包的dcor(X,Y)函数可以计算出两个向量XY之间的距离系数.我有一个这样的矩阵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

推荐答案

也许energy::dcor不能像stats::cor那样在单个数据帧上进行交叉计算.一种解决方法是使用outer:

outer(Z, Z, Vectorize(energy::dcor))

#           Z1        Z2        Z3
# Z1 1.0000000 0.7632896 0.7647835
# Z2 0.7632896 1.0000000 0.4783923
# Z3 0.7647835 0.4783923 1.0000000

R相关问答推荐

R创建一个数据透视表,计算多个组的百分比

查找图下的面积

在发布到PowerBI Service时,是否可以使用R脚本作为PowerBI的数据源?

在不安装软件包的情况下测试更新

为什么当用osmdata映射R时会得到相邻状态?

在嵌套列表中查找元素路径的最佳方法

矩阵的堆叠条形图,条形图上有数字作为标签

为了网络分析目的,将数据框转换为长格式列联表

您是否可以折叠R中的重复行,同时保留基于所选列的值?

跨列查找多个时间报告

在使用具有Bray-Curtis相似性的pvCluust时计算p值

观察器中的inaliateLater的位置

有没有办法一次粘贴所有列

防止在更新SHINY中的Reactive Value的部分内容时触发依赖事件

我如何使用循环来编写冗余的Rmarkdown脚本?

在ggplot2上从多个数据框创建复杂的自定义图形

为R中的16组参数生成10000个样本的有效方法是什么?

在生成打印的自定义函数中,可以通过变量将线型或 colored颜色 设置为NULL吗?

使用函数从R中的列中删除标高

R:如何在数据集中使用Apply