3

我的总体目标是构建一个共同作者网络图。我有一份 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)

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

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

4

3 回答 3

1

您可以尝试以下方法:

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

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

于 2017-02-22T18:22:16.527 回答
0
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 的附属机构现在在哪里。

于 2017-02-22T18:51:28.257 回答
0

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

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"]])
    })
))

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

于 2018-07-14T18:44:29.900 回答