首页 > 解决方案 > 计算不同城镇到多个边界的最小距离:包括边界ID

问题描述

我有一个包含数千个城市数据的面板数据集(inter_sf),以及另一个包含多个省边界的空间文件(borders,每个观测值都是一个边界)。

我计算了所有城市到所有省界的最小距离,只保留了到最近省界的最小距离。

我想创建一个新变量来标识省边界的 ID,从每个城市计算最小距离。

这是我的代码:

inter_sf <- st_as_sf(inter, coords = c("longitud", "latitud"), crs = st_crs(provinces_sf))

i <-  st_intersection(provinces_sf, provinces_sf)
borders <- i[i$GID_2 != i$GID_2.1,]

min_dist <- sapply(1:nrow(inter_sf), function(x) min(st_distance(borders, inter_sf[x, ])))

inter2_sf <- cbind(inter_sf, min_distance = min_dist) 

但现在我不知道如何包含一个新列,标识每个“min_distance”对应的具体省界。

谢谢你,伊尼戈

标签: cssrspatial

解决方案


推荐阅读