|||
利用R进行专利分析——专利权人合作网络图
#直接对SQL加工过的DERWENT数据进行统计
#在SQL上选择虚拟现实数据库,数据是存在SQL上的大致就是包括了[ID],[GA],[AE],[SN],[Code],[Type]几种类型,其中,[ID]是标识符,[GA]是DERWENT的标识符,[AE]是专利权人名称,[SN]是专利权人在专利中的排序,[Code]是DERWENT的专利权人简写代码,[Type]是专利权人类型。
Assignee<-sqlQuery(pat,"SELECT [ID],[GA],[AE],[SN],[Code],[Type] FROM[virtual_reality_DII].[dbo].[Assignee_Info]")
#取一个子集来做研究
#主要以Code为standard的数据来做为研究基础,这些为DERWENT标注过的公司
assignee_sample<-sqlQuery(pat,"SELECT* FROM [virtual_reality_DII].[dbo].[Assignee_Info] WHERE Type='standard'")
#data.frame进行精简,有些列表不起作用了,去掉[Type],[UnifyName],[Lable]三列
assignee_sample<-assignee_sample[,c("ID","GA","AE","SN","Code")]
#统计Code的频次,为排序做准备
assignee_freq<-with(assignee_sample,table(Code))
#强行改变数据格式为data.frame形式
assignee_freq<-as.data.frame(assignee_freq)
#按照频数进行排序
assignee_freq<- assignee_freq[order(as.numeric(assignee_freq$Freq),decreasing = TRUE), ]
#专利权人合作网络图 #构建矩阵
a<-table(assignee_sample$GA,assignee_sample$Code)
#查看是否是矩阵 is.matrix(a) #t()是矩阵的转置
#可以用crossprod实现效率更高
#a是一个左边为GA,右边为Code的方阵 #因此矩阵A的转置矩阵(A')%*%(A)就等于Code的邻接矩阵
#b是Code为边的临接矩阵
library(igraph)
#调用igraph包
g=graph.adjacency(b>2,mode="undirected",diag=F)
#去掉对角线,将模式改为无向网络,画出合作图。
plot(g,layout=layout.graphopt,edge.color=grey(0.5),vertex.size=3,edge.arrow.size=.2,vertex.label=NA,)
#layout有若干参数可以选择,不同算法呈现图的效果不同:graphopt、kamada.kawai、spring、circle、sphere
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-10 19:08
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社