【问题标题】:Using rentrez to parse out author and affiliation from pubmed使用rentrez从pubmed中解析出作者和隶属关系
【发布时间】:2017-02-22 17:56:37
【问题描述】:

我的总体目标是构建一个共同作者网络图。我有一份 PubMed ID 列表,这些是我对共同作者网络绘图感兴趣的唯一出版物。我不知道如何使用rentrez 在我的查询中同时获取作者姓名和各自的附属机构。我可以得到这两个信息,但我的从属关系列表比我的作者列表少大约 300 个,所以很明显有些人没有提供从属关系,但我不知道是谁。有什么方法可以结合搜索作者和附属机构吗? [当我在我的 entrez_fetch 中同时执行这两项操作时,它只是分别给了我一个作者和附属机构的列表,所以我仍然无法弄清楚哪个附属机构属于哪个作者。]

library(tidyverse)
library(rentrez)
library(XML)

trial<-entrez_fetch(db="pubmed", id=pub.list$PMID, rettype="xml", parsed=TRUE)
affiliations<-xpathSApply(trial, "//Affiliation", xmlValue)
first.names<-xpathSApply(trial, "//Author/ForeName", xmlValue)

这一切都很好,但我无法弄清楚哪些作者与哪些隶属关系,因为他们的长度不同。

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 试试xmlToDataFrame(trial["//Author"])

标签: r xml author pubmed rentrez


【解决方案1】:

你可以试试这样的:

xpathSApply(trial, "//Author", function(x) {
  author_name <- xmlValue(x[["LastName"]])
  author_affiliation <- xmlValue(x[["AffiliationInfo"]][["Affiliation"]])
  c(author_name,author_affiliation)
  })

通过获取每个//Author 节点的值,它在第一行返回作者的姓氏,在第二行返回他们的隶属关系。

【讨论】:

  • 谢谢!当我按照您编写的代码运行代码时,我最终得到了一种奇怪的格式,其中只显示了数字。我将代码分成两部分(一份用于作者,另一部分用于附属机构,使用完全相同的格式),然后将它们组合起来,这一次它显示了附属机构的 NA 出现的位置!
  • 很好,输出是一个矩阵。如果您想要一种更易读的格式,您可以将矩阵存储在一个变量中,数据为 ex,然后执行 as.data.frame(t(data)) 将其作为数据框获取,每行一个作者,第一列中的姓氏和隶属关系在第二个。
【解决方案2】:
last.name<-xpathSApply(trial, "//Author", function(x) {
  author_name <- xmlValue(x[["LastName"]])})

affiliation<-xpathSApply(trial, "//Author", function(x) {
  author_affiliation <- xmlValue(x[["AffiliationInfo"]][["Affiliation"]])})

这就是我最终使用的,遵循 NicE 的格式并且它起作用了——我可以看到 NA 的隶属关系现在在哪里。

【讨论】:

    【解决方案3】:

    我拿了@NicE 的代码和@Shirley 的cmets 并写了这段代码:

    lastname_affiliation <-data.frame(cbind(
        xpathSApply(trial, "//Author", function(x) {
            author_name <- xmlValue(x[["LastName"]])
        }), 
        xpathSApply(trial, "//Author", function(x) {
            author_affiliation <- xmlValue(x[["AffiliationInfo"]][["Affiliation"]])
        })
    ))
    

    感谢您让我走上正确的道路。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      相关资源
      最近更新 更多