我有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;办法。有任何想法吗? 感谢。
答案 0 :(得分:5)
有两种选择:
distance()
可以在两个数据帧(但不是余弦距离)上为您计算欧几里德和曼哈顿的度量。