这是培训班的一个小伙伴遇到的问题,使用一些地理计算就能解决了。
计算各个城市/区县的质心距离省界的距离主要用两个函数,st_centroid() 计算质心,st_distance() 计算距离。
首先加载相关 R 包然后读取省市区县的行政区划数据:
library(tidyverse) |
计算城市和区县的质心并且从 prov 里面提取省界(线条):
county %>% |
计算所有城市区县之前我们先以安徽省为例计算下:
# 以安徽省为例 |
然后我们就可以循环所有的省了,这里我没有使用循环,而是使用了 lapply():
lapply(unique(provline$省), function(x){ |
类似的方法求各个城市的:
lapply(unique(provline$省), function(x){ |
最后我们再使用 ggplot2 绘制两幅图展示下:
区县的:
# 读取中国省级地图数据 |
| 各区县质心距离省界的距离 |
|---|
![]() |
城市的:
ggplot(cn) + |
| 各城市质心距离省界的距离 |
|---|
![]() |
直播讲解
为了让大家更好的理解上面的代码,欢迎各位培训班的小伙伴参加明晚 8 点的直播课「使用 R 语言计算各个城市/区县距离省界的距离」
- 直播时间:2021 年 3 月 19 日晚上 8 点;
- 直播地址:腾讯会议(需要报名培训班参加)
- 如何报名 RStata 培训班,可以阅读这篇推文了解:听说这里又能学习 R 语言和 Stata,又能答疑!零基础也不用担心!
点击这里跳转到 RStata 短书平台获取附件:使用 R 语言计算各个城市/区县的质心距离省界边界的距离


评论