Я только начал изучать 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
в качестве вывода.Пожалуйста, помогите мне кто-нибудь.