найти максимальное расстояние между серией координат разных людей до одной точки - PullRequest
0 голосов
/ 18 июня 2020

У меня есть серия данных отслеживания в виде координат от людей, покидающих и возвращающихся в одно и то же место (ie. Все они уходят с одних и тех же координат), и я хотел бы найти максимальное евклидово расстояние, достигнутое от начальная точка для каждого человека, мой набор данных выглядит примерно так:

   LON      LAT      ID year    
-5.473959 51.72998   1  2010    
-5.502444 51.58304   1  2010  
-5.341897 50.97509   1  2010    
-5.401117 50.76360   1  2010 

, а координаты начальной точки - x = -5,479, y = 51,721

ID представляет каждого человека (показан только ID 1 как очень длинный набор данных), где у меня более 100 человек в год и данные за 8 лет.

Любая помощь приветствуется!

1 Ответ

1 голос
/ 18 июня 2020

Вот подход с dplyr и distHaversine:

library(dplyr)
library(geosphere)
data %>% 
  mutate(distance = distHaversine(c(-5.479,51.721), cbind(LON, LAT))) %>%
  group_by(ID) %>%
  summarize(max = max(distance, na.rm = TRUE))
# A tibble: 1 x 2
     ID     max
  <int>   <dbl>
1     1 106715.

Выходные данные должны быть в метрах.

...