之前给大家分享了工企周边 1~5km 范围内的 PM2.5 浓度数据:
历年工企业周边年平均 PM2.5 浓度面板数据:https://rstata.duanshu.com/#/course/96e2daf6e4d94af9baf7f98908d6c535
很多小伙伴提出是不是可以使用类似的方法计算上市公司周边的 PM2.5 浓度数据。
之前给大家分享过不少关于 PM2.5 的数据,我这次先选择了华盛顿大学圣路易斯分校来源的 PM2.5 数据:
1998~2023 年各省市区县 PM2.5 质量浓度面板数据&栅格数据(华盛顿圣路易斯分校来源):https://rstata.duanshu.com/#/course/c5aae9471c56495e8d7e48d1ff09f637
这份数据里面的栅格数据是分辨率 0.01˚x0.01˚ 的,大概是 1 km,下图展示了 2023 年的 PM2.5 浓度分布:
![]()
使用上市公司的注册地址和办公地址的经纬度坐标分别构建 1km~5km、10km、15km、20km 的缓冲区就可以裁剪栅格数据计算各个公司历年周边的平均 PM2.5 浓度变化了。
上市公司数据我使用的是之前分享的这个:「2000~2024 年上市公司注册地址与办公地址(含经纬度及其所处的省市区县)」(https://rstata.duanshu.com/#/course/746d4f595eba41a2a116b5a6edc3ac0a),其中经纬度是使用高德地图地理编码接口进行解析的。
数据概览
为便于大家使用,我计算了 1998~2023 年上市公司周边 1km、2km、3km、4km、5km、10km、15km、20km 范围内的 PM2.5 浓度,最终得到了附件中的:
- 1998~2023年上市公司注册地址与办公地址周边一定范围的平均PM2_5质量浓度面板数据.dta
![]()
经过计算之后一共得到了 130 万条结果,包含如下变量:
- 股票代码
- 股票简称
- 年份
- 地址类型
- 距离范围_km
- 平均PM25质量浓度
历年上市公司周边平均 PM2.5 质量浓度如下图所示:
![]()
不同距离计算的结果差异不大,大家可以根据自己的需要选择使用。
计算方法
计算方法类似下面这个课程,感兴趣的小伙伴可以学习:
使用 R 语言计算工企周边一定范围内的平均 PM2.5 浓度:https://rstata.duanshu.com/#/course/016330182fb64ecd9fab8ada0d816130
首先分别生成了上市公司地址周边 1km、2km、3km、4km、5km、10km、15km、20km 的缓冲区,例如地址 5km 的缓冲区是这样生成的:
library(tidyverse) |
这样会得到一个以每个公司为中心、半径为 5km 的圆形区域。
然后读取 PM2.5 浓度栅格数据,例如 2023 年的:
library(terra) |
然后使用上面的缓冲区数据和栅格数据进行地理计算就可以得到每个缓冲区内的 PM2.5 浓度了!例如 5km 的:
terra::extract(rst, vect(df2_5km), fun = "sum", na.rm = T, exact = T) %>% |
按照这个思路循环各个年份的即可(不过运算量非常大,建议大家不要尝试,非常耗时)。
处理之后再整理即可得到分享给大家的 1998~2023年上市公司注册地址与办公地址周边一定范围的平均PM2_5质量浓度数据了,数据中的浓度单位是“微克/立方米”:
代码
为方便大家学习,附件中还提供了数据处理和绘图代码以供参考:
![]()
数据引用格式
由于该数据包含较多 RStata 处理的内容,在研究中使用该数据请使用清晰的方式注明数据来源于 RStata 或者 RStata 数据中心,并使用如下格式引用:
RStata 数据中心: 1998~2023 年上市公司注册地址与办公地址周边一定范围的平均 PM2.5 质量浓度面板数据. 2026. https://tidyfriday.cn/rsdb2/
英文文献可以使用下面的格式引用:
RStata Data Center: Panel Data on Average PM₂.₅ Mass Concentration in the Vicinity of Registered and Office Addresses of Listed Companies, 1998–2023. 2026. https://tidyfriday.cn/rsdb2/
点击这里跳转到 RStata 短书平台获取附件:1998~2023 年上市公司注册地址与办公地址周边一定范围的平均 PM2.5 质量浓度面板数据
评论