历年各省市区县邻接矩阵、质心距离矩阵、质心距离倒数矩阵数据

今天给大家分享一份中国历年各省市区县的邻接矩阵、质心距离矩阵以及质心距离倒数矩阵。

这份数据是根据之前分享的 1949~2021 年中国各省市区县地理矢量数据,使用 R 语言计算的。

×

关于这份数据的来源:

  1. 1820 年的数据来源于:https://geodata.lib.berkeley.edu/catalog/stanford-wd799pc4692
  2. 1949~2014 年的数据来源于:https://geodata.lib.berkeley.edu/?f%5Bdct_isPartOf_sm%5D%5B%5D=Administrative+Boundary+Maps+of+China%2C+1949-2014
  3. 2015~2018 年的数据是根据 2014 年的数据和民政部公布的「县级以上行政区划变更情况」调整得到的:http://xzqh.mca.gov.cn/description?dcpid=1
  4. 2019 年数据来源于 1:100万公众版基础地理信息数据(2021):https://www.webmap.cn/commres.do?method=result100W
  5. 2020~2021 年的数据是根据 2019 年的数据和民政部公布的「县级以上行政区划变更情况」调整得到的:http://xzqh.mca.gov.cn/description?dcpid=1

虽然 1949~2018 年的数据来源于国外,不过准确性不错,境界线符合国内的要求。

为了计算历年各省市区县的邻接矩阵、质心距离矩阵以及质心距离倒数矩阵,在计算之前我进行了下面两部的处理:

  1. 每年的数据中只保留省-市-县不重复的,重复的只保留数据中的第一个;
  2. 合并台湾省的区划。

例如 2020 年区县数据的处理:

library(tidyverse)
library(sf)

# 合并
read_sf("2020行政区划/县.shp") %>%
st_make_valid() %>%
select(-contains("类型")) %>%
distinct(省, 市, 县, .keep_all = T) -> county

# 合并台湾省的区划
bind_rows(
county %>%
dplyr::filter(省 != "台湾省"),
county %>%
dplyr::filter(省 == "台湾省") %>%
group_by(省代码, 省) %>%
summarise() %>%
ungroup() %>%
mutate(市 = 省, 县 = 省, 市代码 = 省代码, 县代码 = 省代码)
) -> county

经过循环计算就可以得到历年的矩阵了,为了方便大家使用,我计算了如下几种矩阵数据:

  1. 邻接矩阵(对角线为0) - 省市区县
  2. 邻接矩阵(对角线为1) - 省市区县
  3. 质心距离倒数矩阵(对角线为0) - 省市区县
  4. 质心距离倒数矩阵(对角线为Inf) - 省市区县
  5. 质心距离矩阵 - 省市区县

数据文件分年份、分省市区县存放,大家可以很容易找到自己需要的数据使用:

例如 1949 年各省质心距离倒数矩阵:

作为演示,我还绘制了两幅图展示:

  1. 1978 年中国各城市与其他城市间的平均距离

  1. 2019 年中国接壤其他区县最多的 30 个区县

关于空间权重矩阵的使用大家可以学习平台上的这些课程:

×

×

×

×

另外还有一些类似的数据:

×

×

×

点击这里跳转到 RStata 短书平台获取附件:历年各省市区县邻接矩阵、质心距离矩阵、质心距离倒数矩阵数据

评论