Je suis actuellement en train d'explorer la possibilité d'extraire le nom de pays des affiliations de l'auteur (articles PubMed), mes données d'échantillons ressemblent à: p>
Au départ, j'ai essayé de supprimer les ponctuations et de scinder le vecteur en mots, puis de la comparé avec une liste de noms de pays de Wikipedia, mais je ne réussis pas à cela. p>
Quelqu'un peut-il me suggérer une meilleure façon de le faire? Je préférerais la solution dans Département d'ingénierie mécanique et de production, Université nationale de Singapour. Code> P>
Campagne de recherche sur le cancer Groupe de réparation d'ADN de cellules de mammifère, département de zoologie, Cambridge, U.k. Code> P>
Cancer de la recherche sur le cancer groupe de réparation d'ADN de la cellule mammifère, département de zoologie, Cambridge, Royaume-Uni. Code> P>
Laboratoires de recherche Lilly, Eli Lilly et Société, Indianapolis, en 46285. Code> P>
r code> car je dois faire une analyse plus approfondie et générer des graphiques dans
r code>. p>
3 Réponses :
Un moyen de diviser vos chaînes afin d'isoler les informations géographiques (par exemple en supprimant tout au premier coma), puis soumettez le résultat à un service de géocodage. P>
Par exemple, l'API Google Geocoding permet d'envoyer une adresse et de récupérer une localisation et des informations géographiques correspondantes, telles que le pays. Je ne pense pas qu'il y ait un package r prêt à le faire, mais vous pouvez trouver certaines fonctions ici, par exemple: p>
géocodage en R avec Google Maps P>
Il existe également des extensions dans d'autres langues telles que Ruby: P>
http://geokit.rubyforge.org/ p>
Cela dépend également du nombre d'observations que vous avez, l'API Google gratuit, par exemple, est limitée à environ 200 adresses / IP / jour, si je me souviens bien. P>
Voici une solution simple qui pourrait vous aider à démarrer une partie du processus. Il utilise une base de données contenant des données de ville et de pays dans le package Maps. Si vous pouvez obtenir une meilleure base de données, il doit être simple de modifier le code.
[[1]] [1] "Singapore" [[2]] [1] "UK" [[3]] [1] "UK" [[4]] character(0)
Avec un service de géocodage externe, vous avez peut-être trouvé le quatrième, mais votre solution est très agréable et reste à l'intérieur de R. J'aurais suscité si j'avais des votes à gauche :-)
@juba merci. On peut développer cette solution. Par exemple, si une ville est trouvée, mais un pays n'est pas, on peut rechercher le pays pour la ville trouvée dans World.City
caa <-gsub ("[[: punct:] \ n]", "" ", aa) # fonctionne code>
str_replace_all code> ne fonctionnait pas aussi
llply code > devrait être remplacé par
acadréal code> merci beaucoup @andrie
@NEO_ME Désolé pour Str_replace_all () - Ceci se trouve dans Package Stringr, et est une enveloppe pour GSub. Merci de me rappeler [: punct:] ce qui est clairement meilleur. Enfin, la pénlyse et l'affichage sont équivalents et c'est une question de goût.
@ Andrie's La réponse est agréable, mais cela manque des villes et des pays qui sont plus d'un mot par exemple. Nouvelle-Zélande ou New York. Le deuxième exemple est une préoccupation telle qu'elle serait étiquetée comme une correspondance à York, au Royaume-Uni, pas New York, États-Unis.
Cette alternative doit capturer ces cas un peu mieux. P>
[[1]] character(0) [[2]] [1] "Cambridge" [[3]] [1] "Cambridge" [[4]] [1] "Indianapolis"
Vous pouvez faire mieux si vous prépayez le fichier en dehors de R, enregistrez-le comme CSV, puis utilisez R pour le reste. Google Affiner est un excellent outil pour ce type de travail.
Google Affiner code> fonctionne aussi bien! Merci pour la suggestion!