如果我在R中有纬度和经度,我怎样才能找到美国郡最近的县?

时间:2016-05-09 16:02:05

标签: r google-maps geospatial

我知道找到距离的函数sqrt((x1-x0)^2 + (y1-y0)^2)。但我有两列纬度和经度,我想找到4个最接近的县之间的差异。 我需要循环吗? 我还有一个百分比专栏。每个县都有一个百分比。所以,我需要找到最近县之间的百分比差异。

1 个答案:

答案 0 :(得分:2)

当然,您不需要解决问题。

不是这样做,而是通过创建一个earth.dist函数来做得更好:

earth.dist <- function (long1, lat1, long2, lat2)
{
rad <- pi/180
a1 <- lat1 * rad
a2 <- long1 * rad
b1 <- lat2 * rad
b2 <- long2 * rad
dlon <- b2 - a2
dlat <- b1 - a1
a <- (sin(dlat/2))^2 + cos(a1) * cos(b1) * (sin(dlon/2))^2
c <- 2 * atan2(sqrt(a), sqrt(1 - a))
R <- 6378.145
d <- R * c
return(d)
}

通过将此与所有国家/地区之间的计算结合起来,您可以按升序距离为每个国家/地区订购列表,然后计算方差。 它将遵循您正在寻找的结果。

希望这个功能性解释可以帮到你。