Использование Rentrez для анализа автора и принадлежности от опубликованных
Моя общая цель - построить граф сети соавторов. У меня есть список идентификаторов PubMed, и это единственные публикации, которые меня интересуют для построения графика сети соавторов. Я не могу понять, как собрать вместе имена авторов и соответствующие филиалы в моем запросе с помощью 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)
Все это прекрасно работает, но я не могу понять, какие авторы с какими филиалами, так как их длина различна.
Любая помощь будет принята с благодарностью. Спасибо!
3 ответа
Вы можете попробовать что-то вроде:
xpathSApply(trial, "//Author", function(x) {
author_name <- xmlValue(x[["LastName"]])
author_affiliation <- xmlValue(x[["AffiliationInfo"]][["Affiliation"]])
c(author_name,author_affiliation)
})
Возвращает в первом ряду фамилию авторов, а во втором ряду их принадлежность, получая эти значения для каждого //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, и это сработало - я вижу, где сейчас находятся членские собрания АН.
Я взял код @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"]])
})
))
Спасибо, что поставили меня на правильный путь.