Расчет расстояния с использованием широты и долготы - PullRequest
0 голосов
/ 29 мая 2019

Я только начал изучать R, и мне действительно нужна помощь.У меня есть набор данных под названием train с более чем 16 тыс. Наблюдений.Я хочу рассчитать расстояние между двумя точками.Предоставляются следующие переменные: latitude_start, longitude_stop, longitude_start, latitude_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 в качестве вывода.Пожалуйста, помогите мне кто-нибудь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...