首页 > 解决方案 > 使用来自 pubmedR 的 pmApiRequest 和 pmApi2df 检索到的不完整的隶属关系

问题描述

使用 pubmedR 查找期刊的作者隶属关系,我发现它们有时不完整。下面是一个例子:

library(pubmedR)
journal <- "Advances in Clinical Chemistry[JO] AND 2021:2021[DP]"
article_count <- pmQueryTotalCount(query = journal, api_key = NULL)
article_count$total_count
# [1] 21
article_request <- pmApiRequest(query = journal, limit = article_count$total_count, api_key = NULL)
dfa <- pmApi2df(article_request, format = "bibliometrix")

在数据框“dfa”的从属列“C1”或“AF_UN”中,我们可以观察到,例如,对于第 2 行和第 3 行(PMID 34044912 和 34044911),尽管在相应的 Pubmed 中很好地提及了该国家/地区,但并未出现该国家/地区附属机构(分别为冰岛和沙特阿拉伯)。 https://pubmed.ncbi.nlm.nih.gov/34044912/ https://pubmed.ncbi.nlm.nih.gov/34044911/

如何检索详尽的从属关系?

标签: requestbibliographypubmed

解决方案


我最终发现从 Pubmed 文章中检索详尽的隶属关系的最佳方法是来自 ciakovx(感谢他):

# https://stackoverflow.com/questions/64103323/extracting-affiliation-information-from-pubmed-search-string-in-r/64109130#64109130
library(pubmedR)
library(purrr)
library(tidyr)

journal <- "Advances in Clinical Chemistry[JO] AND 2021:2021[DP]"
article_count <- pmQueryTotalCount(query = journal, api_key = NULL)
article_count$total_count
# [1] 21

article_request <- pmApiRequest(query = journal, limit = article_count$total_count, api_key = NULL)

dfa <- pluck(article_request, "data") %>% {
  tibble(
    pmid = map_chr(., pluck, "MedlineCitation", "PMID", "text"),
    journal = map(., pluck, "MedlineCitation", "Article", "Journal", "ISOAbbreviation"),
    pubdate = map(., pluck, "MedlineCitation", "Article", "Journal", "JournalIssue", "PubDate", "Year"),
    affiliation = map(., pluck, "MedlineCitation", "Article", "AuthorList", "Author", "AffiliationInfo", "Affiliation")
  )
}
dfa <- as.data.frame(dfa)

推荐阅读