ceci est mon premier post ici, donc s'il vous plaît pardonnez les erreurs wrt les directives de publicationlapply sur la liste des objets xml
Je suis en train de lire des données XML à partir de PubMed, pour extraire des données sur les affiliations auteur
chaque entrée contient un ensemble de noeuds comme ceci:
<AuthorList>
<Author>
<LastName>Serra-Blasco</LastName>
<ForeName>Maria</ForeName>
<Initials>M</Initials>
<AffiliationInfo>
<Affiliation>Department of Psychiatry, Hospital de la Santa Creu i Sant Pau, Biomedical Research Institute Sant Pau (IIB Sant Pau), Universitat Autònoma de Barcelona (UAB), Centro de Investigación Biomédica en Red de Salud Mental (CIBERSAM), Barcelona, Catalonia, Spain.</Affiliation>
</AffiliationInfo>
</Author>
...
Je voudrais finir avec un dataframe qui contient chaque nom de l'auteur et l'affiliation à une ligne.
J'ai essayé de le faire en utilisant xpathSApply pour analyser les nœuds en lisant "// Author", et je me suis retrouvé avec une liste de nœuds xml.
L'analyse syntaxique s'avère être un problème: j'ai écrit du code qui fonctionne sur un élément individuel de cette liste;
pour, par exemple, si la liste est authorlist
je peux extraire un tableau approprié pour authorlist[[1]]
utiliser cette fonction (qui utilise xpathSApply dans l'élément)
Mais lorsque je tente d'envelopper lapply autour de cette fonction, il me donne une erreur qui dit qu'il ne peut pas exécuter xpathApply sur une liste. L'appel d'erreur exacte est:
Erreur dans UseMethod (« xpathApply »): aucune méthode applicable pour « xpathApply » appliquée à un objet de la classe « liste »
Je présume que les appels lapply la liste sous-ensemble avec l'équivalent de [i] alors que ce dont j'ai besoin est [[i]]. Y a-t-il un moyen de contourner ceci? Ou devrais-je réécrire avec d'autres règles à l'esprit?
Je suis ouvert à la réécriture (c'est juste un peu de gaffes autour de ce que je fais) mais ce problème semblait intéressant, j'espère que vous pouvez aider!
Merci beaucoup! va explorer ce paquet, on dirait qu'il va trier mes problèmes immédiats ... mais y a-t-il aussi un moyen de contourner le problème lapply plus général que je semble avoir rencontré? Je ne sais pas si c'est quelque chose qui arriverait à moins que l'on travaille avec cette structure particulière ... –
xml_nodes retournera un vecteur avec tous les nœuds avec cette balise. Vous ne devriez pas avoir besoin d'utiliser lapplication si la structure est cohérente. Voir la documentation associée aux paquets rvest et xml2 pour des exemples. – Dave2e