R 如何计算两组数据之间的距离
我有两个数据帧-使用L行学习数据和使用T行测试数据 我想用相应元素之间的距离(欧几里德、曼哈顿、余弦…)计算一个L*T矩阵 以下是我的看法: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)) {
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
更快,更适合您的需求(两个数据帧)。看,谢谢,我试过了,效果完全符合我的要求。我选择了代理包,它做同样的事情,但是已经实现了很多不同的度量。代理包非常棒,有很多距离和相似性度量。这正是我想要的,谢谢。