2017-02-22 4 views
1

Mein übergeordnetes Ziel ist es, ein Co-Autor Netzwerk-Diagramm zu erstellen. Ich habe eine Liste von PubMed-IDs und diese sind die einzigen Publikationen, an denen ich mich für die grafische Darstellung des Co-Autoren-Netzwerks interessiere. Ich kann nicht herausfinden, wie man sowohl die Autornamen als auch die jeweiligen Zugehörigkeiten in meiner Anfrage mit rentrez zusammenbringt. Ich kann beide Informationen bekommen, aber meine Liste der Zugehörigkeiten ist ungefähr 300 weniger als meine Autorenliste, also offensichtlich haben einige keine Zugehörigkeiten zur Verfügung gestellt, aber ich kann nicht herausfinden wer. Gibt es eine Möglichkeit, nach Autor und Zugehörigkeit zu suchen? [Als ich sowohl in meiner entrez_fetch tat, es gab mir nur eine Liste der Autoren und Zugehörigkeiten getrennt, so kann ich immer noch nicht herausfinden, welche Verbindungen mit welchen Autoren gehört.]Verwenden von riverrez zum Aussortieren von Autor und Zugehörigkeit von pubmed

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) 

Das alles funktioniert gut, aber ich kann Finde heraus, welche Autoren zu welchen Zugehörigkeiten gehören, da ihre Längen unterschiedlich sind.

Jede Hilfe würde sehr geschätzt werden. Vielen Dank!

+0

Versuchen Sie 'xmlToDataFrame (Versuch [" // Autor "])' –

Antwort

1

Sie könnten versuchen, so etwas wie:

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

Es gibt in der ersten Zeile die Nachnamen der Autoren und in der zweiten Reihe ihrer Zugehörigkeit durch diese Werte für jeden //Author Knoten zu bekommen.

+0

Danke! Als ich den Code, wie du ihn geschrieben hast, ausgeführt habe, habe ich ein seltsames Format bekommen, in dem nur Zahlen auftauchen. Ich teile den Code in zwei Teile auf (einen für Autoren und einen für die Zugehörigkeit, benutze genau das gleiche Format wie du) und kombinierst sie dann und dieses Mal zeigt es, wo die NAs für Zugehörigkeiten auftauchen! – Shirley

+0

Großartig, die Ausgabe ist eine Matrix. Wenn Sie ein besser lesbares Format wünschen, können Sie die Matrix in einer Variablen speichern, Daten für ex und dann 'as.data.frame (t (data))', um es als Datenrahmen mit einem Autor pro Zeile zu erhalten, und in der ersten Spalte der Nachname und die Zugehörigkeit in der zweiten. – NicE

+0

Ah ja, das hat perfekt funktioniert! – Shirley

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

Dies ist, was ich am Ende mit, Nizzas Format folgen und es funktionierte - ich kann sehen, wo die NA jetzt Zugehörigkeiten des sind.

Verwandte Themen