r - 如何计算两组数据之间的距离

标签 r dataframe distance

我有 2 个数据框 - 学习数据有 L 行,测试数据有 T 行。

我想计算一个 L*T 矩阵,其中包含相应元素之间的距离(欧氏、曼哈顿、余弦...)。

这是我的看法:

distance2 <- function (x1, x2) {
            temp <- x1 - x2
            sum(temp * temp)
}

m <- matrix(0,nrow(learnData),nrow(testData))
for(td in 1:nrow(testData)) {
    for(ld in 1:nrow(learnData)) {
        m[ld,td] <- distance2(testData[td,],learnData[ld,])                 
    }
}

我认为这可以通过更紧凑的“R”方式来完成。有任何想法吗? 谢谢。

最佳答案

我想到了两个选项:

  1. 使用proxy包,其中有许多已经编码的差异系数,可以分别计算两个数据帧
  2. analogue 包,它具有函数 distance(),可以为您计算两个数据帧上的欧几里得和曼哈顿测量值(但不是余弦距离)。

关于r - 如何计算两组数据之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12450486/

相关文章:

python - 在 python 中创建成对元素列表

Python pandas 数据框删除索引名称不出现在其他数据框中的行

java - 如何检测重叠的圆圈并相应地填充颜色?

r - 尝试在 R 中找到数据一致性

python - 合并时忽略空数据框

r - R 中每个级别的信号/行之间的距离

python - 如何消除两个数据集的 Leibler 分歧

r - 包 'tinytex' 的安装具有非零退出状态

r - 对多个变量执行卡方检验并提取 R 中的相关 p 值

r - 箱线图 - 使用变量访问列名