我的总体目标是建立一个共同作者网络图。我有一个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)这一切都很好,但我不能弄清楚哪些作者属于哪个从属关系,因为他们的长度不同。
任何帮助都将不胜感激。谢谢!
发布于 2017-02-23 02:22:17
您可以尝试如下所示:
xpathSApply(trial, "//Author", function(x) {
author_name <- xmlValue(x[["LastName"]])
author_affiliation <- xmlValue(x[["AffiliationInfo"]][["Affiliation"]])
c(author_name,author_affiliation)
})它通过为每个//Author节点获取这些值,在第一行返回作者的姓氏,在第二行返回作者的从属关系。
发布于 2017-02-23 02:51:28
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代表从属关系的位置。
发布于 2018-07-15 02:44:30
我采用了@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"]])
})
))谢谢你让我走上了正确的道路。
https://stackoverflow.com/questions/42398935
复制相似问题