Учитывая кадр данных с широтами и долготами, я хочу добавить столбец, который просто содержит количество других точек (того же кадра данных), которые находятся в пределах определенного радиуса, например. в пределах 10 км от этой конкретной точки.Расчет количества точек в определенном радиусе
Пример данные:
set.seed(1)
radius<-10
lat<-runif(10,-90,90)
long<-runif(10,-180,180)
id<-1:10
dat<-cbind(id,lat,long)
id lat long
[1,] 1 -42.20844 -105.8491530
[2,] 2 -23.01770 -116.4395691
[3,] 3 13.11361 67.3282248
[4,] 4 73.47740 -41.7226614
[5,] 5 -53.69725 97.1429112
[6,] 6 71.71014 -0.8282728
[7,] 7 80.04155 78.3426630
[8,] 8 28.94360 177.0861941
[9,] 9 23.24053 -43.1873354
[10,] 10 -78.87847 99.8802797
Теперь с учетом переменного радиуса Я хочу новый столбец сказать «X», что для каждой точки содержит только число других точек, которые находятся в «радиусе». Меня не волнует, какие именно моменты.
В то время как это R - Finding closest neighboring point and number of neighbors within a given radius, coordinates lat-long тема и ответ приблизиться, он не решает конкретный вопрос простого подсчета. Этот вопрос отличается, как мне нужно отсчеты всех точек в пределах радиуса, а не точки
теорему Пифагора, 'distance² = (point1x - point2x) ² + (point1y - point2y) ²', или если вы хотите сохранить CPU и не вычислять квадратный корень, вы можете просто проверить, будет ли '10² <((point1x - point2x) ² + (point1y - point2y) ²)' знать, находится ли его внутри радиуса. Я не знаю синтаксиса «R», поэтому я не могу вам помочь, но я уверен, что вы можете понять здесь. – Havenard
Я действительно ищу гео-расстояние, и синтаксис R является ключевым здесь, и в частности, как получить счет всех точек в пределах этого радиуса. – Kathi
@ Havenard нам нужно использовать некоторую метрику расстояния, такую как Haversine, чтобы найти расстояние между двумя точками на земле (выраженное lat/lon), метрика евклидова расстояния не будет работать здесь. –