上次课程主页:https://rstata.duanshu.com/#/brief/course/427ec490765843a99825d3c412fff61e
继续上次的内容,今天我们再来学习如何基于真实专利数据分城市、产业计算数实融合水平。
分城市
由于需要分城市,所以在保留变量的时候需要保留城市变量:
use patent_small1/2012, clear
list newipzlid IPC 市 in 1/10
|
按照同样的方式进行初步处理:
drop if !index(IPC, ";")
drop if mi(市)
keep newipzlid IPC 市 replace IPC = subinstr(IPC, " ", "", .)
egen ipc = ipc_sub00(IPC), parse(;) choose(10) drop IPC ren 市 city save ipcdata, replace
|
然后就可以分城市计算了:
clear all use ipcdata, clear contract city ipc qui do matacode2.do
|
这里 matacode2.do 的代码如下:
此处代码需下载讲义材料查看~
采取的方法是先循环城市,每次处理一个城市的数据。结果都保存到 csv 文件里面。
读取结果:
import delimited using "res3.csv", clear
ren (v1 v2 v3 v4) (city ipc1 ipc2 value) destring, replace
compress
collapse (sum) value, by(city ipc1 ipc2) drop if ipc1 == ipc2
save ipcmat, replace
list in 1/10
|
后面的代码和前面的基本一样,就是分组的时候记得加上 city 的
use ipcmat, clear ren ipc1 uniq_ipc joinby uniq_ipc using 专利数据与行业小类代码简易对照表.dta, unmatched(master) drop _m uniq_ipc ren 国民经济行业代码 industry1 ren ipc2 uniq_ipc joinby uniq_ipc using 专利数据与行业小类代码简易对照表.dta, unmatched(master) drop _m uniq_ipc ren 国民经济行业代码 industry2 drop if mi(value)
collapse (sum) value, by(city industry1 industry2) replace value = 0 if industry1 == industry2
drop if mi(industry1) | mi(industry2)
save industrymat, replace
use industrymat, clear ren industry1 国民经济行业代码 recast str5 国民经济行业代码 merge m:1 国民经济行业代码 using 产业数实分类
keep if _m == 3
drop _m ren 国民经济行业代码 industry1 ren 类别 class1 ren industry2 国民经济行业代码 recast str5 国民经济行业代码 merge m:1 国民经济行业代码 using 产业数实分类
keep if _m == 3
drop _m ren 国民经济行业代码 industry2 ren 类别 class2 drop if value == 0
bysort class1: egen freq1 = nvals(industry1) bysort class2: egen freq2 = nvals(industry2) collapse (sum) value (first) freq1 (first) freq2, by(city class1 class2) gen RH = value / (freq1 * freq2) gen class = "数实融合" if class1 != class2
replace class = "数数融合" if class1 == "数字经济产业" & class2 == "数字经济产业"
replace class = "实实融合" if class1 == "实体产业" & class2 == "实体产业"
keep city class RH duplicates drop _all, force
spread class RH gsort -数实融合 list in 1/10
|
分行业计算数实融合
分行业就不需要重新构造 IPC 融合矩阵了,而是直接在分行业计算那里替换上更细致的行业分类:
use 国民经济分类与IPC分类号对照表.dta, clear
keep 国民经济行业代码 duplicates drop 国民经济行业代码, force
gen industry2 = substr(国民经济行业代码, 2, .) merge 1:1 industry2 using 数字经济核心产业.dta
tab _m
drop if _m == 2
drop _m merge m:1 国民经济行业代码 using 实体产业分类.dta
tab _m
drop industry2 _m keep 国民经济行业代码 数字经济产业 实体产业 gen class = (!mi(数字经济产业)) duplicates drop _all, force
gen 类别 = "数字经济产业" if !mi(数字经济产业)
replace 类别 = 实体产业 if mi(类别)
keep 国民经济行业代码 类别 duplicates drop _all, force
save 产业数实分类2, replace
list in 1/10
|
然后计算:
此处代码需下载讲义材料查看~
这样就实现了分产业的计算。
点击这里跳转到 RStata 短书平台获取附件:名师讲堂|使用 Stata 测算数实融合水平(三):分城市、产业计算数实融合
评论