1985~2022年绿色低碳技术专利申请数据筛选结果
[size=1em]两种筛选结果专利数据里面有分类号和主分类号两个变量,所以筛选的结果也分为两种(推荐使用分类号筛选的结果,主分类号筛选的结果可以作为稳健性分析):
为了数据过于庞大的问题,我使用了两组文件存放这份数据,第一组是筛选得到的绿色低碳技术专利,按年拆分,里面有 newzlid 变量和绿色低碳技术ID(每个 newzlid 对应一个专利,每个 绿色低碳技术ID 对应一个类别):
- 基于分类号筛选的绿色低碳技术专利.zip
- 基于主分类号筛选的绿色低碳技术专利.zip
第二组是每个 绿色低碳技术ID 的具体含义:
[size=1em]字段信息数据包含如下变量:
newzlid、年份、绿色低碳技术ID、公开公告号、专利名称、专利类型、摘要、申请人、申请号、申请日、授权公布号、地址、主权项、发明设计人、分类号、主分类号、专利代理机构、分案原申请号、优先权、国际申请、国际公布、代理人、省份或国家代码、专利领域、专利学科、多次公布、城市、所属国省、公开公告日、省、省代码、市、市代码、县、县代码、纬度、经度、参考文献、代码、发布路径、范畴分类、国别、名称、申请国代码、申请来源、邮编、页数、专利号、颁证日、审查员、进入国家日期、摘要附图存储路径
其中 newzlid 是我给专利的编号,包含 newzlid 变量的数据可以直接和这个数据使用该变量匹配;纬度、经度是根据申请人地址解析得到的;省、省代码、市、市代码、县、县代码是根据经纬度和 2021 年行政区划判断得到。
[size=1em]注意事项在计算上市公司绿色专利申请数量时需要注意,专利数据里面有很多申请和授权同时存在的专利,在统计专利数量的时候应该先去除这种重复情况:

统计的时候可以先去除公开公告号里面的 A、B、U、S。其中 A 代表发明专利的申请公开,B 代表发明专利的授权公告,U 代表实用新型专利的授权公告,S 代表外观设计专利的授权公告。
例如,如果想统计各绿色低碳大类类别下的专利数量可以这样:
use 绿色低碳技术专利IPC对照表,
clear
keep if !
index(技术分支编号,
".")
keep 技术*
save 技术分支类别,
replace
use 1985~2022年绿色低碳专利申请筛选结果(根据分类号筛选).dta,
clear
gen 公开公告号2 =
subinstr(公开公告号,
"A",
"", .)
replace 公开公告号2 =
subinstr(公开公告号2,
"B",
"", .)
replace 公开公告号2 =
subinstr(公开公告号2,
"U",
"", .)
replace 公开公告号2 =
subinstr(公开公告号2,
"S",
"", .)
duplicates drop 绿色低碳技术ID 公开公告号2, force
drop 公开公告号2
merge m:1 绿色低碳技术ID using
"绿色低碳技术专利IPC对照表"
keep if _m == 3
drop _m
replace 技术分支编号 =
substr(技术分支编号, 1, 1)
drop 技术分支名称
merge m:1 技术分支编号 using 技术分支类别
contract 年份 技术分支名称
spread 技术分支名称 _freq

不过这里去除重复的仅仅是去除了同一绿色低碳类别下的专利,实际上里面还是有不同类别的重复专利的(也就是有些专利属于多个绿色低碳类别)。
如果想要统计不同区县的申请量,就应该直接剔除所有重复的了:
use 1985~2022年绿色低碳专利申请筛选结果(根据分类号筛选).dta,
clear
*- 删除重复的(不考虑不同类别下的)
gen 公开公告号2 =
subinstr(公开公告号,
"A",
"", .)
replace 公开公告号2 =
subinstr(公开公告号2,
"B",
"", .)
replace 公开公告号2 =
subinstr(公开公告号2,
"U",
"", .)
replace 公开公告号2 =
subinstr(公开公告号2,
"S",
"", .)
duplicates drop 公开公告号2, force
*- 分省市区县汇总
contract 年份 省 省代码 市 市代码 县 县代码 专利类型
