今天在生信技能樹(shù)的公眾微信號(hào)上,看到了一篇文章——關(guān)于批量獲取某個(gè)研究者發(fā)表的論文信息。利用R包rscopus來(lái)進(jìn)行數(shù)據(jù)的下載,最后整理成Excel表,進(jìn)行最初步的呈現(xiàn)。但是可能有些作者不一定能找到,我們老板的信息好像就沒(méi)有找。
代碼是公眾微信號(hào)作者的,我只是搬運(yùn)工,只是用來(lái)娛樂(lè)一下順便熟悉一下R語(yǔ)言。鄭重聲明,我不是原創(chuàng),只是代碼運(yùn)行者,有些地方稍微進(jìn)行了修改。
# 這里我用日本岡山大學(xué)馬建鋒教授為例,將其公開(kāi)發(fā)表過(guò)的文章信息獲取并寫(xiě)入Excel。
## 安裝和載入需要的R包
install.packages("rscopus")
install.packages("readxl")
library(rscopus)
library(readxl)
## 讀取xlsx中的內(nèi)容,將列名稱分別改為ln和fn
name = read_excel("C:/Users/user/Desktop/au_all_article/name.xlsx")
colnames(name)=c("ln","fn")
## 建立一個(gè)新的數(shù)據(jù)框,各字符串的長(zhǎng)度為0
auid <- data.frame(auth_name=character(0),au_id=character(0),affid=character(0),affil_name=character(0))
## 循環(huán)獲取作者的信息,get_author_info是一個(gè)獲取作者信息的函數(shù):通過(guò)作者的名字來(lái)獲取,所以有時(shí)候會(huì)有同名同姓的人,還要手動(dòng)選擇的。
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需自行申請(qǐng),網(wǎng)址是:https://dev.elsevier.com/apikey/create,每個(gè)人我覺(jué)得應(yīng)該有一個(gè)獨(dú)一無(wú)二的key。
# 用subset函數(shù),進(jìn)行條件選擇,這里的條件為機(jī)構(gòu)的ID,在au變量中能夠看到這個(gè),這里我因?yàn)橹挥幸粋€(gè)人,也沒(méi)有用這個(gè)循環(huán),其實(shí)應(yīng)該用新的變量來(lái)進(jìn)行替換,達(dá)到循環(huán)的效果
id = subset(au,affid=="60024045")
auid = rbind(auid,id)
}
## author_df是一個(gè)函數(shù),通過(guò)au_id來(lái)獲取作者發(fā)表的文章的信息
test<-author_df(au_id = 14056743000,api_key = "15a*********************")
## 創(chuàng)建新的變量,以數(shù)據(jù)框的形式來(lái)存儲(chǔ)數(shù)據(jù)
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轉(zhuǎn)變成數(shù)值型變量pauid,然后再通過(guò)author_df函數(shù)來(lái)獲取論文信息
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")
全部過(guò)程結(jié)束,最后可以通過(guò)Excel打開(kāi)CVS格式的文件,下面通過(guò)圖片展示一下最后的結(jié)果,感謝小伙伴的代碼,以后可以快樂(lè)的進(jìn)行某個(gè)作者的論文信息查詢。當(dāng)然我也知道這個(gè)不是萬(wàn)能的,更新速度肯定沒(méi)有那么及時(shí),有時(shí)候還找不到,其中的原因還需要重新研究一下。

馬老師發(fā)表的部分文章,我以引用次數(shù)為條件,進(jìn)行了排序