繁体   English   中英

计算R中不同ID长度的个体在两个坐标列组之间的距离

[英]Calculate the distance between two coordinates columns group by individuals of different ID length in R

我有个人的位置,数据框如下:

 ID       Lat       Lon        Distance
 1        51.5184   -0.1382
 1        51.5147   -0.1532
 2        51.5184   -0.1342
 2        51.5147   -0.1522
 2        51.5537   -0.1556
 ...      ...       ...

我想计算每个人的移动距离。 我不太确定如何计算数据框中个人的点组距离。

我知道之前发布过一些类似的问题,例如: 如何计算R中沿列行的纬度和经度之间的距离? 我发现我们的情况有点不同。 当我使用这个功能时:

mutate(Distance = c(NA, distHaversine(cbind(Lon[-n()], Lat[-n()]), cbind(Lon[-1], Lat[-1]))))

在我的工作中,我发现错误subscript out of bounds ,这意味着ID的长度不同。 就像我的数据显示的那样,我有2个ID:1和3 ID:2,这导致了这个问题。 如果有人能告诉我如何修改这个功能以适合我的情况,我真的很感激。 谢谢。

mutate(df, Distance=distHaversine(cbind(Lon, Lat),cbind(lag(Lon),lag(Lat))))

对不起,我的坏 - 忘了distHaversine需要一个矩阵。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM