1
我有2个数据框,它们只是2维(纬/长)矩阵。这两个数据帧看起来像下面的输入:在2个单独的矩阵中查找坐标的最近邻点以及2之间的距离
latitude longitude
27.78833 -82.28197
27.79667 -82.29294
我们称之为“dfref”和“dfnew”。我想在dfref
中的每个点找到dfnew
中的最近点以及以米为单位的2个点之间的距离。
输出应该是这样的:
dr.latitude dr.longitude dn.latitude dn.longitude dist
27.78833 -82.28197 27.54345 -82.33233 162.34
27.79667 -82.29294 27.56543 -82.12323 232.23
我已经使用了类包的KNN功能和Searchtrees包试过,但我的脚本只发现在dfref矩阵最近的点,我不知道如何添加测量。
knn1(train=cbind(dfref), test=cbind(dfnew), cl=seq_len(nrow(dfnew)))
是否有确实有效且我怎样才能到一个脚本这一个功能呢?
感谢布拉特,不过,我觉得我没有正确地解释我的问题。 我想只找到dfref中的所有点的距离,只有dfnew中的最近点,并非dfref中的所有点和dfnew中的所有点。当试图找到所有点时,我遇到了关于内存分配的问题。 '1:在forderv(byval,sort = FALSE,retGrp = TRUE): 达到8125Mb的总分配数量:see help(memory.size)' – ericbrownaustin
您不需要计算距离所有点的距离点? – Bulat
A K Nearest Neighbors函数可用于查找最近点,因此在查找实际距离之前只返回最近点。我试图在我原来的问题中使用一个,但不太了解结果。找到每个点的距离有点过于密集,正如我在之前的评论中提到的那样。我的数据框是10k和15k行,我需要找到一个有效的方法来处理它们。 – ericbrownaustin