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

R 如何计算两组数据之间的距离,r,dataframe,distance,R,Dataframe,Distance,我有两个数据帧-使用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)) {

我有两个数据帧-使用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,])                 
    }
}

distance 2想到两个选项:

  • 使用代理软件包,该软件包中有许多差异系数已经编码,可以分别计算两个数据帧的差异系数
  • 模拟软件包,具有函数
    distance()
    ,可以在两个数据帧上为您计算欧几里德和曼哈顿度量(但不是余弦距离)

  • 对于欧几里得,最好使用
    字段
    包中的
    rdist
    。它比dist
    更快,更适合您的需求(两个数据帧)。看,谢谢,我试过了,效果完全符合我的要求。我选择了代理包,它做同样的事情,但是已经实现了很多不同的度量。代理包非常棒,有很多距离和相似性度量。这正是我想要的,谢谢。