gpt4 book ai didi

r - 如何使用 R 计算多个 lon lat 向量之间的距离

转载 作者:行者123 更新时间:2023-12-04 12:05:48 26 4
gpt4 key购买 nike

我的数据集如下 -

a
Location loc.Lon loc.Lat Pincode pin.lon pin.lat
SPM 79.94533 12.97025 "602105" 79.95285 12.96752
SPM 79.94533 12.97025 "602106" 79.88568 12.91943

我想使用 ggmap 包计算两个 pin 码的 (loc.Lon, loc.Lat) 和 (pin.lon, pin.lat) 之间的距离。

当我运行下面的代码时,我得到了想要的结果 -

mapdist(c(a$loc.Lon[2], a$loc.Lat[2]), c(a$pin.lon[2],a$pin.lat[2]), mode = "driving") 

但是当我对整个数据集 a 运行以下查询时,出现错误 -

a$dist = mapdist(c(a$loc.Lon, a$loc.Lat), c(a$pin.lon,a$pin.lat), mode = "driving")

我得到的错误是 -

Error: is.character(from) is not TRUE

请帮我解决这个问题。

最佳答案

mapdist 接受 fromto 参数的向量,因此您可以转换它们并将此函数应用于数据集的每一行.

假设您想要公里距离:

get_km_from_mapdist <- function(i) {
mapdist(as.numeric(a[i, c('loc.Lon','loc.Lat')]),
as.numeric(a[i, c('pin.lon','pin.lat')]),
mode='driving')$km
}

a$dists = sapply(1:nrow(a), get_km_from_mapdist)

关于r - 如何使用 R 计算多个 lon lat 向量之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36616308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com