|||
利用R进行专利分析——专利权人排序与统计(1维数据)
#最近在所内做了一个汇报,关于学习R语言的,现在将汇报中的部分内容拿来与大家分享:
#其中所使用的数据可以直接从DERWENT用WIN格式下载。
#后面描述统计部分的数据名称稍微有些变化,大家参考就可好了。前面部分内容经验证可以直接使用。
#后面附一个函数,是选用一个《R语言编程艺术》一书,上面将前面冗长的代码给浓缩了,也一并发出来,供家做参考。
#直接对DERWENT原始数据进行清洗并排序 #数据导入
laser<- read.delim("C:/Users/ygc/Desktop/patdat/laser.txt", quote="")
#取出拟分析的列,从专利权人开始分析View(laser$AE)
#注意到作者项中有多余空格“; ”,所以,将其替换后形成"n",作为区分多个作者的标识。
laser$AE<-gsub("; ", "n",laser$AE) #新建一个列表,将专利权人数据拆分。
assignee_AE<-unlist(strsplit(laser$AE, "n"))
#对AE进行简单统计
(1)#将机构及对应频次排序利用TABLE()处理
assignee_AE<-as.data.frame(table(assignee_AE))
(2)#对assignee_AE进行排序
assignee_list<-assignee_AE[order(-assignee_AE$Freq),]
(3)#以机构代码进行排序,首先,检索“(”出现的位置
anum=regexpr("\(",assignee_list$assignee_AE)
(4)#提取专利权人代码,保留6位,区分I,N,去掉“)”
simname=substr(assignee_list$assignee_AE,anum+1,anum+6)
assignee_list$assignee_AE<-sub("\)","",simname)
#描述性统计的三个函数
#进行描述性统计
#(a)最基础的描述统计
summary(assignee_freq$Freq)
#(b)稍复杂的描述统计
library(Hmisc) describe(assignee_freq$Freq)
#(c)更专业的统计指标
library(pastecs) stat.desc(assignee_freq$Freq)
#强加了值域、偏度、峰度、标准误差、95%平均数置信度、方差、标准差、变异系数
另一个可以参考的公式,该公式直接实现了统计排序功能,参考自The Art of R Programming.
# finds the cells in table tbl with the k highest frequencies; handling
# of ties is unrefined
tabdom<- function(tbl,k) {
# create a data frame representation of tbl,adding a Freq column
tbldf <- as.data.frame(tbl)
# determine the proper positions of thefrequencies in a sorted order
freqord <-order(tbldf$Freq,decreasing=TRUE)
# rearrange the data frame in that order,and take the first k rows
dom <- tbldf[freqord,][1:k,]
return(dom)
}
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-10 06:09
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社