在不同个体的一系列坐标到单个点之间找到最大距离

问题描述 投票:0回答:1

我有一系列坐标数据,这些坐标数据来自离开并返回同一地点的个人(即,他们都从同一坐标离开),并且希望找到从起点开始的最大欧几里得距离每个人,我的数据集或多或少像这样

LON LAT ID年-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年的数据。

感谢您的任何帮助!

r euclidean-distance
1个回答
0
投票

这里是使用dplyrdistHaversine的方法:

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.

输出应以米为单位。

© www.soinside.com 2019 - 2024. All rights reserved.