J'ai joué avec le paquet ggmap R et j'aime vraiment les fonctions de traçage pour afficher les données géographiques. J'ai essayé de faire des graphiques simples de quelques données de population de la ville que j'ai avec la fonction geocode
, mais je n'arrive pas à comprendre comment organiser les données de façon logique. En l'état actuel, j'ai données structurées dans une liste comme siComment ajouter des listes à un bloc de données R?
City Type Population
1 Detroit city 713777
2 Grand Rapids city 188040
3 Warren city 134056
4 Sterling Heights city 129699
5 Lansing city 114297
6 Ann Arbor city 113934
et je voudrais ajouter « colonnes » avec les entrées de latitude et de longitude retournées par geocode
. Plus précisément, si le dataframe ci-dessus est nommé Michigan, je suis preneuse coordonnées avec
lapply(as.vector(michigan$City), geocode)
qui prend une chaîne (dans ce cas, un nom de ville) et utilise les cartes Google Maps api pour deviner les coordonnées, la production d'une liste des listes:
[[1]]
lon lat
1 -83.04575 42.33143
[[2]]
lon lat
1 -85.66809 42.96336
[[3]]
lon lat
1 -83.0282 42.493
[[4]]
lon lat
1 -83.0302 42.58031
[[5]]
lon lat
1 -84.55553 42.73253
[[6]]
lon lat
1 -83.74304 42.28083
Je voudrais ajouter la latitude et les valeurs de longitude à la trame de données michigan
comme « colonnes », mais parce que le résultat de mon lapply
est une liste de listes, cela est plus compliqué que simplement trancher quelques tableaux - quelle est la meilleure façon de le faire idiomatiquement dans R?
Pouvez-vous poster quelques exemples de code et les données que vous utilisez pour la fonction 'géocodage()'? La réponse courte utilise probablement la fonction 'merge()', sauf si vos données sont vraiment bien structurées, auquel cas 'cbind()' peut être suffisant. – David
Essayez 'ldply' de ** plyr ** au lieu de' lapply' ou 'do.call (rbind, ...)' sur le résultat. – joran
Salut. Où est Traverse City? –