[英]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.