En este caso práctico «Geocodificamos las direcciones de los Centros comerciales de Bogotá«, según el dataset publicado en Kaggle: https://www.kaggle.com/datasets/erik172/bogota-shopping-malls
Utilizaremos la librerías tidygeocoder para obtener los valores de longitud y latitud, según las direcciones de los centros y, mapview para la creación del mapa en el que se localizará espacialmente a estos mediante puntos.
Tras realizar varias pruebas he podido comprobar que se producen menos errores si la dirección para la que quieren obtenerse las coordenadas geográficas se encuentra 1) en un único campo y 2) incluye otros datos como localidad, provincia, país… Para eso utilizo en este ejemplo unite y paste0, con el fin de crear la nueva variable direccion como suma de las variables ADDRESS, LOCALIDAD y, la palabra «BOGOTÁ«. Al añadir esta última conseguí evitar unas cuantas coordenadas erróneas, fuera incluso del país de Colombia.
En tidygeocoder::geocode(…. method = «osm«) se indica el uso de OPEN STREEN MAP para el cálculo de estas coordenadas. El dataset contaba con las direcciones de 42 centros comerciales pero tras el proceso quedaron 14 de ellos sin geolocalizar (obteniéndose en esos casos NAs para las variables de latitud y longitud). Ahora toca averiguar si es como consecuencia de que las direcciones son erróneas, están escritas incorrectamente o es que a Open Street Map le falta información. Se que existe la posibilidad de usar otras opciones de pago pero la intención aquí era hacer una prueba rápida de lo que se podía obtener con tidygeocoder.
El dataset original cuenta originalmente con variables latitud y longitud. Las eliminé para realizar el cálculo a partir de las direcciones, con tidygeocoder. La idea utilizar esta librería y ver el resultado. La falta de coordenadas para 14 de los 43 centros comerciales (aprox 33%) genera un problema que debe ser resuelto estudiando con detalle la forma en que se han escrito las direcciones o, las particularidades que pudiera tener open street map con respecto a la disponibilidad de esta información. Por lo demás, como suele ocurrir en R, el método y proceso resulta bastante sencillo y, con pocas líneas de código (muy sencillo además) es posible obtener resultados a partir de donde comenzar a trabajar.