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”的方式来完成。有任何想法吗? 谢谢。
对于euclidean,您最好使用'fields'包中的'rdist'。它比'dist'更快,更符合您的要求(两个数据帧)。请参阅http://stackoverflow.com/a/10220868/1201032 – flodel
谢谢,我试过了,它的工作原理与我想要的完全一样。我选择了代理包来做同样的事情,但是已经实施了很多不同的措施。 –