J'ai un ensemble de données contenant des informations lat/longues pour différents emplacements de points, et j'aimerais savoir quelle ville et quel état sont associés à chaque point.extraire des informations de ville et d'état à partir d'une adresse de rue google
suite de cette example I utilisé la fonction revgeocode
de ggmap
pour obtenir une adresse pour chaque emplacement, la production de la trame de données ci-dessous:
df <- structure(list(PointID = c(1787L, 2805L, 3025L, 3027L, 3028L,
3029L, 3030L, 3031L, 3033L), Latitude = c(38.36648102, 36.19548585,
43.419774, 43.437222, 43.454722, 43.452643, 43.411949, 43.255479,
43.261464), Longitude = c(-76.4802046, -94.21554661, -87.960399,
-88.018333, -87.974722, -87.978542, -87.94149, -87.986433, -87.968612
), Address = structure(c(2L, 8L, 5L, 3L, 9L, 7L, 4L, 1L, 6L), .Label = c("13004 N Thomas Dr, Mequon, WI 53097, USA",
"2160 Turner Rd, Lusby, MD 20657, USA", "2805 County Rd Y, Saukville, WI 53080, USA",
"3701-3739 County Hwy W, Saukville, WI 53080, USA", "3907 Echo Ln, Saukville, WI 53080, USA",
"4823 W Bonniwell Rd, Mequon, WI 53097, USA", "5100-5260 County Rd I, Saukville, WI 53080, USA",
"7948 W Gibbs Rd, Springdale, AR 72762, USA", "River Park Rd, Saukville, WI 53080, USA"
), class = "factor")), row.names = c(NA, -9L), class = "data.frame", .Names = c("PointID",
"Latitude", "Longitude", "Address"))
je voudrais utiliser R pour extraire les informations ville/état de l'adresse complète, et créer deux colonnes pour stocker cette information ("Ville" et "État)
Je suppose que le paquet stringr
est la voie à suivre, mais je ne suis pas sûr de savoir comment s'y prendre Le example ci-dessus a utilisé le code suivant t o extraire le code postal (nommé "result" dans cet exemple). Leurs ensemble de données:
# ID Longitude Latitude result
# 1 311175 41.29844 -72.92918 16 Church Street South, New Haven, CT 06519, USA
# 2 292058 41.93694 -87.66984 1632 West Nelson Street, Chicago, IL 60657, USA
# 3 12979 37.58096 -77.47144 2077-2199 Seddon Way, Richmond, VA 23230, USA
et le code pour extraire le code postal:
library(stringr)
data$zipcode <- substr(str_extract(data$result," [0-9]{5}, .+"),2,6)
data[,-4]
Est-il possible de modifier facilement le code ci-dessus pour obtenir les données de la ville et de l'État?
vous avez reçu beaucoup de bonnes réponses ci-dessous. Envisager d'en accepter une (coche à gauche) qui vous a le plus aidé à résoudre votre problème.Cela permet à la communauté de savoir que cela a fonctionné pour vous et reconnaît l'aide de la communauté – CPak