使用经度和纬度进行距离计算

时间:2019-05-29 10:41:15

标签: r latitude-longitude

我刚刚开始学习R,我确实需要一些帮助。我有一个称为train的数据集,观测值超过16k。我想计算两点之间的距离。提供给我的变量是latitude_startlongitude_stoplongitude_startlatitude_stop

请考虑提供帮助。

我尝试过使用Haversine,但是无法正确使用

Dist <- function(d,lon1,lat1,lon2,lat2) { 
     for (i in train) { 
         a1 <- deg2rad(i[lat1])
         a2 <- deg2rad(i[lat2])
         dlon <- i[lon2]-i[lon1]
         dlat <- i[lat2]-i[lat1]
         a <- (sin(dlat/2))^2 + cos(a1) * cos(i[a2]) * (sin(dlon/2))^2
         c <- 2 * atan2(sqrt(a), sqrt(1 - a))
         R <- 6371.0087714  # WGS84 mean radius   
         d <- R * c
         i["h_distance"] = d
         return(d)
     }
 }
ds = Dist("h_distance", "longitude_start", "latitude_start", "longitude_stop", "latitude_stop")
> ds
[1] NA

好吧,我没有收到任何错误,但是它为我提供了NA作为输出。请帮助我任何人。

0 个答案:

没有答案