本文介绍了R中两个数据帧的行之间的欧几里德距离的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在 R 中计算欧几里得距离很容易.一个很好的例子可以在这里找到.向量化形式为:
Calculating Euclidean Distances in R is easy. A good example can be found HERE. The vectorised form is:
sqrt((known_data[, 1] - unknown_data[, 1])^2 + (known_data[, 2] - unknown_data[, 2])^2)
获得一个数据帧的每一行与另一个数据帧的所有行的欧几里得距离的最快、最有效的方法是什么?apply()
系列中的特定函数?谢谢!
What would be the fastest, most efficient way to get Euclidean Distances for each row of one data frame with all rows of another data frame? A particular function from apply()
family? Thanks!
推荐答案
也许你可以试试 outer
+ dist
像下面这样
Maybe you can try outer
+ dist
like below
outer(
1:nrow(known_data),
1:nrow(unknown_data),
FUN = Vectorize(function(x,y) dist(rbind(known_data[x,],unknown_data[y,])))
)
这篇关于R中两个数据帧的行之间的欧几里德距离的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!