美文网首页r语言学习数据科学与R语言R
R包rscopus批量获取公开发表的文章信息

R包rscopus批量获取公开发表的文章信息

作者: lxmic | 来源:发表于2017-09-16 20:52 被阅读123次

    今天在生信技能树的公众微信号上,看到了一篇文章——关于批量获取某个研究者发表的论文信息。利用R包rscopus来进行数据的下载,最后整理成Excel表,进行最初步的呈现。但是可能有些作者不一定能找到,我们老板的信息好像就没有找。

    代码是公众微信号作者的,我只是搬运工,只是用来娱乐一下顺便熟悉一下R语言。郑重声明,我不是原创,只是代码运行者,有些地方稍微进行了修改。

    # 这里我用日本冈山大学马建锋教授为例,将其公开发表过的文章信息获取并写入Excel。
    ## 安装和载入需要的R包
    install.packages("rscopus")
    install.packages("readxl")
    library(rscopus)
    library(readxl)
    ## 读取xlsx中的内容,将列名称分别改为ln和fn
    name = read_excel("C:/Users/user/Desktop/au_all_article/name.xlsx")
    colnames(name)=c("ln","fn")
    ## 建立一个新的数据框,各字符串的长度为0
    auid <- data.frame(auth_name=character(0),au_id=character(0),affid=character(0),affil_name=character(0))
    ## 循环获取作者的信息,get_author_info是一个获取作者信息的函数:通过作者的名字来获取,所以有时候会有同名同姓的人,还要手动选择的。
    for (i in 1:nrow(name)){
      lastname=name[i,1]
      firstname=name[i,2]
      au = get_author_info(last_name = lastname, first_name = firstname,api_key ="15a*****************") 
      #api_key需自行申请,网址是:https://dev.elsevier.com/apikey/create,每个人我觉得应该有一个独一无二的key。
    # 用subset函数,进行条件选择,这里的条件为机构的ID,在au变量中能够看到这个,这里我因为只有一个人,也没有用这个循环,其实应该用新的变量来进行替换,达到循环的效果
      id = subset(au,affid=="60024045")
      auid = rbind(auid,id)
    }
    ## author_df是一个函数,通过au_id来获取作者发表的文章的信息
    test<-author_df(au_id = 14056743000,api_key = "15a*********************")
    ## 创建新的变量,以数据框的形式来存储数据
    paperid <- data.frame(a=character(0),b=character(0),c=character(0),d=character(0),e=character(0),f=character(0),g=character(0),h=character(0),j=character(0),k=character(0),l=character(0),m=character(0))
    ## 赋予列名称,并将字符型变量au_id转变成数值型变量pauid,然后再通过author_df函数来获取论文信息
    colnames(paperid)<-colnames(test$df)
    pauid <- as.numeric(auid$au_id)
    for (i in 1:nrow(auid)){
      paper<-author_df(au_id = pauid[i],api_key = "15a*******************")
      paperid = rbind(paperid, paper)
    }
    ## 最后合并变量,以CSV格式输出
    mergepaper<-merge(auid,paperid,by="au_id")
    write.csv(mergepaper, file="targetpap.csv")
    

    全部过程结束,最后可以通过Excel打开CVS格式的文件,下面通过图片展示一下最后的结果,感谢小伙伴的代码,以后可以快乐的进行某个作者的论文信息查询。当然我也知道这个不是万能的,更新速度肯定没有那么及时,有时候还找不到,其中的原因还需要重新研究一下。

    马老师发表的部分文章,我以引用次数为条件,进行了排序

    相关文章

      网友评论

        本文标题:R包rscopus批量获取公开发表的文章信息

        本文链接:https://www.haomeiwen.com/subject/gnwdsxtx.html