使用 rentrez 从 pubmed 解析作者和隶属关系
Using rentrez to parse out author and affiliation from pubmed
我的总体目标是构建一个共同作者网络图。我有一个 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)
这一切都很好,但我无法弄清楚哪些作者属于哪些隶属关系,因为他们的长度不同。
如有任何帮助,我们将不胜感激。谢谢!
您可以尝试类似的方法:
xpathSApply(trial, "//Author", function(x) {
author_name <- xmlValue(x[["LastName"]])
author_affiliation <- xmlValue(x[["AffiliationInfo"]][["Affiliation"]])
c(author_name,author_affiliation)
})
它 returns 在第一行是作者的姓氏,在第二行是他们的隶属关系,方法是为每个 //Author
节点获取这些值。
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 的隶属关系现在在哪里。
我参考了@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"]])
})
))
谢谢你让我走上了正确的道路。
我的总体目标是构建一个共同作者网络图。我有一个 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)
这一切都很好,但我无法弄清楚哪些作者属于哪些隶属关系,因为他们的长度不同。
如有任何帮助,我们将不胜感激。谢谢!
您可以尝试类似的方法:
xpathSApply(trial, "//Author", function(x) {
author_name <- xmlValue(x[["LastName"]])
author_affiliation <- xmlValue(x[["AffiliationInfo"]][["Affiliation"]])
c(author_name,author_affiliation)
})
它 returns 在第一行是作者的姓氏,在第二行是他们的隶属关系,方法是为每个 //Author
节点获取这些值。
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 的隶属关系现在在哪里。
我参考了@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"]])
})
))
谢谢你让我走上了正确的道路。