我刚刚开始学习R,我确实需要一些帮助。我有一个称为train
的数据集,观测值超过16k。我想计算两点之间的距离。提供给我的变量是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
作为输出。请帮助我任何人。