Я хочу вычислить расстояние между всеми точками в очень большой матрице, используя distm
из geosphere
.
См. Минимальный пример:
library(geosphere)
library(data.table)
coords <- data.table(coordX=c(1,2,5,9), coordY=c(2,2,0,1))
distances <- distm(coords, coords, fun = distGeo)
Проблема в том, чтоиз-за характера вычисляемых мною расстояний distm
возвращает мне симметричную матрицу, поэтому я мог бы избежать расчета более половины расстояний:
structure(c(0, 111252.129800202, 497091.059564718, 897081.91986428,
111252.129800202, 0, 400487.621661164, 786770.053508848, 497091.059564718,
400487.621661164, 0, 458780.072878927, 897081.91986428, 786770.053508848,
458780.072878927, 0), .Dim = c(4L, 4L))
Можете ли вы помочь мне найтиболее эффективный способ вычислить все эти расстояния, избегая делать дважды каждый?