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

时间:2012-09-16 20:32:15

标签: 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,])                 
    }
}

我认为这可以在更紧凑的情况下完成,&#34; R&#34;办法。有任何想法吗? 感谢。

1 个答案:

答案 0 :(得分:5)

有两种选择:

  1. 使用代理包,其中包含许多已编码的相异系数,可以分别计算两个数据框
  2. 模拟包,其函数distance()可以在两个数据帧(但不是余弦距离)上为您计算欧几里德和曼哈顿的度量。