上市公司周边用电量面板数据

之前给大家分享过上市公司周边的碳排放量数据,其中上市公司数据我使用的是之前分享的这个:

×

来源于和讯网和国泰安数据库,共计 5415 家上市公司的基本信息(含办公地址和注册地址的经纬度)。

碳排放数据是这个:

×

最近有小伙伴想要上市公司周边的用电量数据。用电量数据是之前分享的这个:

×

首先分别生成了上市公司办公地址和注册地址周边 1km、2km、3km、4km、5km、10km、15km、20km 的缓冲区,例如注册地址 5km 的缓冲区是这样生成的:

library(tidyverse)
library(sf)
haven::read_dta("上市公司基本资料及办公地址与注册地址经纬度信息.dta") %>%
mutate(gsid = row_number()) %>%
select(gsid, 股票代码, 股票名称, 公司名称, contains("度")) -> df1

df1 %>%
select(gsid, 股票代码, 股票名称, 公司名称, contains("注册地址")) %>%
st_as_sf(coords = c("注册地址经度", "注册地址纬度"), crs = 4326) -> df2

df2 %>%
st_buffer(dist = units::set_units(5, km)) -> df2_5km

这样会得到一个以每个上市公司为中心、半径为 5km 的圆形区域。

然后用电量栅格数据,例如 2019 年的:

library(terra)
rast("cntif/2019.tif") -> rst

然后使用上面的缓冲区数据和栅格数据进行地理计算就可以得到每个缓冲区内的碳排放总量了!例如 5km 的:

terra::extract(rst, vect(df2_5km), fun = "sum", na.rm = T, exact = T) %>%
as_tibble()

按照这个思路循环各个年份的即可。

为了方便处理和计算,这里我并没有考虑上市公司的成立、上市和退市问题,而是直接循环计算了 1992~2019 年,关于上市公司的成立、上市和退市问题,大家再自己的后续处理中再进行处理和筛选即可。

处理之后再整理即可得到分享给大家的 历年上市公司周边碳排放总量 数据了,数据中的碳排放量单位是“吨”:

  1. 历年上市公司周边用电量.dta
  2. 历年上市公司周边用电量.xlsx

例如 dta 格式的数据是这样的:

作为演示,下图展示了历年来平安银行(深发展)周边的碳排放量增长趋势:

点击这里跳转到 RStata 短书平台获取附件:上市公司周边用电量面板数据

评论