3

我有 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”方式完成。有任何想法吗?谢谢。

4

1 回答 1

5

两个选项浮现在脑海:

  1. 使用已经编码了许多这些不同系数的代理包,并且可以分别为两个数据帧计算这个
  2. 模拟包,它具有可以在两个数据帧(但不是余弦距离)上为您计算欧几里得和曼哈顿度量的功能。distance()
于 2012-09-16T21:16:50.633 回答