如何计算每个城市或区县距离最近省会城市和距离其所在省的省会城市距离?
最近有培训班小伙伴问到了这样一个问题,如何计算每个城市距离所在省的省会城市的距离。这个问题比较简单,我们就一起来解决下。
首先我们读取 2019 年中国各城市的行政区划矢量数据:
library(tidyverse) |
计算城市的质心可以使用 st_centroid() 函数:
city %>% |
| 各个城市的质心 |
|---|
![]() |
省会城市有下面这些:
city_centroid %>% |
计算各个城市距离其所在省的省会城市的距离
| 各个城市距离其所在省的省会城市的距离 |
|---|
![]() |
我们先以山东省为例,计算山东省的各个城市距离其省会城市济南市的距离:
city_centroid %>% |
然后我们就可以循环计算每个城市距离其所在省省会城市的距离了:
# 首先准备一个空数据框 |
计算各个城市距离最近的省会城市的距离
| 各个城市距离最近的省会城市的距离 |
|---|
![]() |
那么另外如果想计算每个城市距离其最近的省会城市(不论是不是本省的)的距离怎么办呢?
这个就很简单了:
st_distance(city_centroid, sh_centroid) -> distmat3 |
计算各个区县距离其所在省的省会城市的距离
| 各个区县距离其所在省的省会城市的距离 |
|---|
![]() |
这个问题也就很简单了:
read_sf("2019行政区划/县.shp") -> county |
计算各个区县距离最近的省会城市的距离
| 各个区县距离最近省会城市的距离 |
|---|
![]() |
同样计算各个区县距离最近的省会城市的距离:
st_distance(county_centroid, sh_centroid) -> distmat4 |
这样我们就获得这四份数据啦:
- 各个城市距离其所在省的省会城市的距离(单位:km).xlsx
- 各个区县距离其所在省的省会城市的距离(单位:km).xlsx
- 各个城市距离最近省会城市的距离(单位:km).xlsx
- 各个区县距离最近省会城市的距离(单位:km).xlsx
点击这里跳转到 RStata 短书平台获取附件:如何计算每个城市或区县距离最近省会城市和距离其所在省的省会城市距离?





评论