NCBIデータベースをRから操作するパッケージはいくつか存在しますが、本パッケージはPubMedデータベースから情報を収集するのに特化したパッケージです。
操作が非常に簡単なので、すぐに使いこなすことができると思います。取得データはxmlファイルなので「XML」パッケージを利用し抽出・加工が可能です。
実行コマンドでは検索クエリに"r statistical software"を指定し、取得したデータをGoogleスプレッドシートへアップロードする例を紹介します。
・「googlesheets」パッケージの紹介
https://www.karada-good.net/analyticsr/r-136/
パッケージバージョンは1.3。実行コマンドはR version 3.2.2で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
#パッケージのインストール install.packages("easyPubMed")
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
#パッケージの読み込み
library("easyPubMed")
#検索クエリを指定
#pubmedの検索タグが使用可能です
#参考:https://ja.wikipedia.org/wiki/MEDLINE
SetQuery <- "r statistical software"
#PubmedIdを取得:getPubmedIdsコマンド
PubMedID <- getPubmedIds(pbmedQuery = SetQuery)
#PubmedIdを元にデータを取得:fetchPubmedDataコマンド
#取得開始の番号:retstartコマンド
#取得終了の番号:retmaxコマンド
#最新10の論文データを取得
#結果はXMLで取得
GetResult <- fetchPubmedData(pubmedIdList = PubMedID, retstart = 0, retmax = 10)
###取得データを整形#####
#雑誌名を取得
AbbreData <- unlist(xpathApply(GetResult, "//ISOAbbreviation", xmlValue))
#doiを取得
#タグが存在しない場合はNA値を結果に代入
DOIData <- unlist(xpathApply(GetResult, "//Article",
function(x){
GetData <- unlist(xpathApply(x, "ELocationID[@EIdType='doi']", xmlValue))
ifelse(is.null(GetData), GetData <- "NA",
xpathSApply(x, "ELocationID[@EIdType='doi']",
function(x) paste(xmlSApply(x, xmlValue), collapse = ", ")))}))
#論文タイトルを取得
TitleData <- unlist(xpathApply(GetResult, "//ArticleTitle", xmlValue))
#出版年月日を取得
PubData <- unlist(xpathApply(GetResult, "//PubDate",
function(x) paste(xmlSApply(x, xmlValue), collapse = ".")))
#キーワードを取得
#タグが存在しない場合はNA値を結果に代入
KeyWordData <- unlist(xpathApply(GetResult, "//MedlineCitation",
function(x){
GetData <- unlist(xpathApply(x, "KeywordList", xmlValue))
ifelse(is.null(GetData), GetData <- "NA",
xpathSApply(x, "KeywordList",
function(x) paste(xmlSApply(x, xmlValue), collapse = ", ")))}))
#アブストラクトを取得
#タグが存在しない場合はNA値を結果に代入
AbstData <- unlist(xpathApply(GetResult, "//Article",
function(x){
GetData <- unlist(xpathApply(x, "Abstract", xmlValue))
ifelse(is.null(GetData), GetData <- "NA",
xpathSApply(x, "Abstract",
function(x) paste(xmlSApply(x, xmlValue), collapse = ", ")))}))
#データの結合
ResultData <- data.frame(TitleData, AbstData, AbbreData, PubData, DOIData, KeyWordData)
###参考:Googleスプレッドシートへアップロード#####
#googlesheetsパッケージは下記URLの記事を参考にしてください
#https://www.karada-good.net/analyticsr/r-136/
#パッケージの読み込み
library("googlesheets")
#Googleスプレッドシートへログイン
gs_auth(new_user = TRUE)
#データをアップロード
gs_new(title = "PubMedData", input = ResultData, trim = TRUE)
[/code]
アップロード例
少しでも、あなたのウェブや実験の解析が楽になりますように!!