各省市区县在公元2年、742年、1102年及1820年的估计人口数量面板数据

今天给大家分享一份公元2年、742年、1102年及1820年的各省市区县估计人口数量面板数据。原始数据来源于《County-level population dataset of ancient China in 2, 742, 1102 & 1820 AD》论文提供的的历史人口数据集,使用 R 语言基于 2021 年行政区划矢量数据进行处理得到。

原始文章引用格式:Zheng, Y., Wu, T. County-level population dataset of ancient China in 2, 742, 1102 & 1820 AD.Sci Data (2026). https://doi.org/10.1038/s41597-026-07086-6

数据概览

为了方便大家使用,我把数据汇总成了省份、城市、区县三个层级的面板数据:

  • 各省份在公元2年、742年、1102年及1820年的估计人口数量面板数据.dta
  • 各城市在公元2年、742年、1102年及1820年的估计人口数量面板数据.dta
  • 各区县在公元2年、742年、1102年及1820年的估计人口数量面板数据.dta

各文件包含的主要变量说明如下:

变量名 单位 说明
CountyPOP 人 根据原始数据中 CountyPointsWithPopulation.shp 按照 2021 年行政区划矢量数据分区域加总,经技术验证与调整后的最终人口数
CountyPOP_RAW 人 根据原始数据分区域加总得到的原始估算人口数,未经调整
区县面积km2 平方千米 2021 年各区县的行政区划面积(根据矢量数据计算)
popdensity 人/平方千米 根据 PopulationDensityVector.shp 与 2021 年矢量数据各区县的覆盖区域面积加权计算(假设人口均匀分布)
CountyPOP_Weight 人 等于区县面积km2 × popdensity

数据预览如下:

图表展示

为了更直观地展示历史人口分布特征,我绘制了以下图表:

各省份人口分布地图

下图展示了 1820 年(清嘉庆二十五年)各省份的人口分布情况:

中国历代人口变化趋势

下图展示了中国历代人口的变化趋势:

各省份人口排名

下图展示了 1820 年各省份人口排名 Top15:

各省份人口密度分布

下图展示了 1820 年各省份人口密度的分布直方图:

重点省份人口历史变化

下图展示了重点省份的人口历史变化趋势:

城市人口分布地图

下图展示了 1820 年各城市人口分布情况(按省份汇总):

人口指标相关性分析

下图展示了 1820 年人口指标之间的相关性散点图及 OLS 拟合线:

处理方法

数据处理采用 R 语言完成,主要使用 sf 和 terra 包进行空间数据处理。主要包括两种方法:

方法一:基于人口点数据分区域加总

library(tidyverse)
library(sf)

# 读取历史人口点数据和2021年行政区划数据
read_sf("CountyPointsWithPopulation.shp") -> df1
read_sf("县.shp") -> county

# 空间叠加并按2021年区县分组统计
df1 %>%
st_transform(4326) %>%
st_intersection(county) -> df1b

df1b %>%
st_drop_geometry() %>%
group_by(YEAR, 省, 省代码, 市, 市代码, 县, 县代码) %>%
summarise(CountyPOP = sum(CountyPOP, na.rm = T)) %>%
ungroup()

方法二:基于人口密度矢量数据面积加权计算

library(terra)
library(sf)
library(units)

# 定义面积加权计算函数
calculate_year_density <- function(hist_year) {
# 计算该年份历史区县的面积、总人口
hist_year <- hist_year %>%
mutate(
area_1102_sqkm = st_area(.) %>% set_units(km^2) %>% drop_units(),
total_pop_1102 = POPDENS * area_1102_sqkm
)

# 空间叠加交集
intersect_poly <- st_intersection(admin, hist_year)

# 交集面积
intersect_poly <- intersect_poly %>%
mutate(
intersect_area_sqkm = st_area(.) %>% set_units(km^2) %>% drop_units()
)

# 按2021区县分组,面积加权求和
result_year <- intersect_poly %>%
st_drop_geometry() %>%
group_by(县代码) %>%
summarise(
total_pop_est = sum(total_pop_1102 * (intersect_area_sqkm / area_1102_sqkm), na.rm = TRUE)
)

return(result_year)
}

附件中也提供了该数据的处理代码供参考:

数据引用格式

由于该数据包含较多 RStata 处理的内容,在研究中使用该数据请使用清晰的方式注明数据来源于 RStata 或者 RStata 数据中心,并使用如下格式引用:

RStata 数据中心: 各省市区县在公元2年、742年、1102年及1820年的估计人口数量面板数据. 2026. https://tidyfriday.cn/rsdb2/

英文文献可以使用下面的格式引用:

RStata Data Center: Panel Data on Estimated Population across Provinces, Cities, and Districts/Counties in China, 2–1820 AD. 2026. https://tidyfriday.cn/rsdb2/

关联课程/数据推荐

使用 R 语言操作地理矢量数据、使用 Stata 绘制精美地图:https://rstata.duanshu.com/#/course/c51384ae56994495b223b366c7449377

1736~1911 年清代各省府州粮价数据库:https://rstata.duanshu.com/#/course/38af44d775ed4265bc259812384540ff

1949~1992 年各省及全国人口相关指标面板数据:https://rstata.duanshu.com/#/course/960f0b697caf4ebfbc4cd2fc93d3b4ed

使用 R 语言绘制中国地图 + 空间网络图:https://rstata.duanshu.com/#/course/82fa1ce28006473ead5b05cfdde1d6e1

如果有相关需要可以联系李老师付费定制。

点击这里跳转到 RStata 短书平台获取附件:各省市区县在公元2年、742年、1102年及1820年的估计人口数量面板数据

评论