1985~2024 年各省市区县、各行业、各类型绿色专利申请与授权量(国家知识产权局标准)

今天给大家分享一份1985~2024年各省市区县、各行业、各类型绿色专利申请与授权量数据。

该数据是基于 RStata 数据中心的专利数据库,根据国家知识产权局发布的《绿色技术专利分类体系》筛选标准处理得到。

数据概览

为了方便大家使用,我把数据汇总成了省市区县、各行业、各类型的绿色专利申请与授权量面板数据。数据包含四个层级:

  • 行业门类(如制造业、建筑业等)
  • 行业大类(如计算机、通信和其他电子设备制造业)
  • 行业中类
  • 行业小类

每个层级的数据都包含以下变量:

  • 省、省代码、市、市代码、县、县代码
  • 年份(1985~2024年)
  • 行业代码(门类/大类/中类/小类)
  • 发明专利申请量、实用新型专利申请量、总专利申请量
  • 发明专利申请并最终被授权量、实用新型专利申请并最终被授权量、总专利申请并最终被授权量

数据预览如下:

图表展示

下图展示了 2000~2024 年重点行业绿色专利申请量的时间趋势对比:

下图展示了 2024 年制造业与电力行业绿色专利申请量的省份分布对比:

下图展示了 2020~2024 年各行业绿色专利授权率的分布对比:

处理方法

该数据的处理主要分为以下几个步骤:

  1. 绿色专利筛选:根据国家知识产权局发布的《绿色技术专利分类体系》筛选标准,从全部专利数据中筛选出绿色专利;
  2. 行业分类匹配:将专利数据与国民经济行业分类进行匹配,统一行业分类到 2017 标准;
  3. 地理信息匹配:根据专利申请人地址信息匹配省市区县代码;
  4. 统计汇总:按省市区县、年份、行业、专利类型进行统计汇总,计算申请量和授权量。

关键处理代码如下:

library(tidyverse)

#- 读取绿色专利筛选对照表
read_csv("/Volumes/ADT/常用大数据/专利筛选对照表/绿色专利/newipzlid.csv") %>%
mutate(newipzlid = as.numeric(newipzlid)) -> ipzlid

#- 读取全部专利数据并匹配绿色专利
read_rds("/Volumes/ADT/数据资料/分行业、省市区县统计专利申请与授权数量/全部专利类型、授权公告日、省市区县信息.rds") %>%
mutate(newipzlid = as.numeric(newipzlid)) %>%
inner_join(ipzlid) -> df1

#- 读取专利国民经济分类数据
read_csv("/Volumes/ADT/数据资料/分行业、省市区县统计专利申请与授权数量/专利国民经济分类.csv") -> class

#- 拆分国民经济分类
class %>%
select(newipzlid, 国民经济分类) %>%
tidytext::unnest_tokens(input = "国民经济分类", output = "国民经济分类",
to_lower = F, token = stringr::str_split, pattern = ";") -> class2

#- 统一行业分类到 2017 标准
haven::read_dta("/Volumes/ADT/数据资料/分行业、省市区县统计专利申请与授权数量/对照表.dta") -> industrytab

#- 合并数据
df2 %>%
inner_join(industrytab) -> df3

#- 统计各省市区县各行业专利申请量
df4 %>%
distinct(省, 省代码, 市, 市代码, 县, 县代码, newipzlid, 行业小类代码, .keep_all = T) %>%
count(省, 省代码, 市, 市代码, 县, 县代码, 年份, 行业小类代码, 专利类型) -> countdf1

#- 统计各省市区县各行业专利授权量
df4 %>%
filter(!is.na(授权公告日)) %>%
distinct(省, 省代码, 市, 市代码, 县, 县代码, newipzlid, 行业小类代码, .keep_all = T) %>%
count(省, 省代码, 市, 市代码, 县, 县代码, 年份, 行业小类代码, 专利类型) -> countdf2

#- 宽数据转换并计算总申请量和总授权量
countdf1 %>%
mutate(专利类型 = paste0(专利类型, "专利申请量")) %>%
spread(专利类型, n, fill = 0) %>%
mutate(总专利申请量 = 发明专利申请量 + 实用新型专利申请量) -> countdf1b

countdf2 %>%
mutate(专利类型 = paste0(专利类型, "专利申请并最终被授权量")) %>%
spread(专利类型, n, fill = 0) %>%
mutate(总专利申请并最终被授权量 = 发明专利申请并最终被授权量 + 实用新型专利申请并最终被授权量) -> countdf2b

#- 合并申请量和授权量
countdf1b %>%
left_join(countdf2b) %>%
mutate(across(contains("授权"), ~if_else(is.na(.x), 0, .x))) -> countdf

#- 保存数据
countdf %>%
arrange(省, 省代码, 市, 市代码, 县, 县代码, 年份, 行业小类代码) %>%
haven::write_dta("1985~2024年各省市区县、各行业小类、各类型绿色专利申请与授权量(国家知识产权局标准).dta",
label = "数据处理:微信公众号 RStata")

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

注意事项

在计算绿色专利申请数量时需要注意,专利数据里面有很多申请和授权同时存在的专利,在统计专利数量的时候应该先去除这种重复情况。

统计的时候可以先去除公开公告号里面的 A、B、U、S。其中 A 代表发明专利的申请公开,B 代表发明专利的授权公告,U 代表实用新型专利的授权公告,S 代表外观设计专利的授权公告。

gen 公开公告号_clean = regexr(公开公告号, "[A-Z]$", "")
replace 专利类型 = "发明" if index(专利类型, "发明")
*- 使用 duplicates drop 去除重复的
duplicates drop 公司代码变量 公开公告号_clean, force
duplicates drop 公司代码变量 申请号, force

数据引用格式

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

RStata 数据中心: 1985~2024年各省市区县、各行业、各类型绿色专利申请与授权量(国家知识产权局标准). 2026. https://tidyfriday.cn/rsdb2/

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

RStata Data Center: Green Patent Applications and Grants by Province, City, District/County, Industry, and Type (National Intellectual Property Administration Standards), 1985–2024. 2026. https://tidyfriday.cn/rsdb2/

关联课程/数据推荐

1985~2024 年绿色专利申请与授权数据(国家知识产权局标准):https://rstata.duanshu.com/#/course/9cfa513db3a54891bef466caac9e6a62

1985~2024 年各省市区县、各IPC部、大类、小类、各类型专利申请与授权量:https://rstata.duanshu.com/#/course/f99176184db141e087ccd4e023517e89

1985~2024 年各省市区县专利申请与授权数量统计(Incopat 数据库来源):https://rstata.duanshu.com/#/course/7300c81235b74b8bb911f04997ab7295

1985~2024 年专利申请与授权数据(版本 3,含申请人所处的省市区县):https://rstata.duanshu.com/#/course/2397451274c546d3a36e156ffc865988

名师讲堂|使用 Stata 筛选绿色技术专利(国家知识产权局标准):https://rstata.duanshu.com/#/course/66607ec05c3748699883f5e834682125

如有相关数据定制需求,可以联系李老师进行付费定制。

点击这里跳转到 RStata 短书平台获取附件:1985~2024 年各省市区县、各行业、各类型绿色专利申请与授权量(国家知识产权局标准)

评论