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