Mapa de México rápido (y sucio) y estático con rstats

No sabía cómo mostraros el funcionamiento de getData del paquete raster para evitaros ir a GADM y descargar los correspondientes mapas. Bueno, pues se me ha ocurrido hacer una entrada que tenga el menor número de líneas posibles y que genere un mapa. No me lo tengáis mucho en cuenta: library(ggplot2) library(raster) library(dplyr) # Obtenemos el mapa de GADM mex <- getData("GADM", country = "MX", level = 2) # El dato que vamos a pintar prov <- data.frame(region = unique(mex@data$NAME_2)) prov$aleatorio <- runif(nrow(prov), 0, 100) # Creamos el objeto mapa al que le añadimos el dato que necesitamos pintar mex_map <- fortify(mex, region = "NAME_2") mex_map <- left_join(mex_map, prov, by = c("id" = "region")) # Pintamos el mapa ggplot(data = mex_map, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = aleatorio)) + scale_fill_continuous(low = "white", high = "blue") + labs(title = "Quick and dirty") + theme_void() Ahí lo tenéis: getData se conecta a GADM donde vía ISO 3 le decimos qué mapa queremos y el nivel que queremos, y pintamos un mapa de México con ggplot2 en un pis pas. Comentad si no entendéis algo; hay miles de entradas que hacen lo mismo de forma más detallada, pero en menos líneas, ninguna. Saludos.

31 de enero de 2019 · rvaquerizo

Porque no vamos a cobrar pensiones. Animación con R y pirámides de población

Estoy creando material para un módulo de un máster que voy a impartir y escribiendo sobre seguros de ahorro he llegado a crear esta animación: Se trata de una animación con las pirámides de población de España desde 1975 hasta 2018 de 5 en 5 años. El sistema de pensiones español se basa en cinco principios: Principio de proporcionalidad Principio de universalidad Principio de gestión pública Principio de suficiencia Principio de reparto La animación va directa contra el principio de reparto. En el sistema español nadie ha cotizado para garantizarse su pensión; los actuales trabajadores pagan las prestaciones de aquellos trabajadores jubilados. Si tras leer estas dos frases y mirar la animación sigues recelando de la migración de personas a España, espero que tengas un buen plan de ahorro privado. ...

9 de diciembre de 2018 · rvaquerizo

Data management con dplyr

Dos años con pandas y scikit-learn y ahora vuelvo a R. Y in mi regreso me propuse comenzar a trabajar con dplyr y mi productividad se está incrementando exponencialmente; creo que dplyr es LA HERRAMIENTA para el manejo de data.frames con R, ni me imagino cómo puede funcionar sparklyr… Para aquellos que estéis iniciando vuestra andadura con R o para los que no estéis acostumbrados a dplyr, he hecho una recopilación de las tareas más habituales que hago con esta librería. Se pueden resumir in: ...

22 de noviembre de 2018 · rvaquerizo

Crear una `RESTful` API con R con plumber

Podéis buscar info en la web acerca de lo que es una REST y una RESTful, pero el objetivo de este trabajo es la creación de una API para escorear unos datos a partir de un modelo que hemos creado en R. Vamos a hacer lo más sencillo: un modelo de regresión lineal creado por R será guardado y una API con datos podrá llamar a este modelo mediante un cliente RESTful para obtener una predicción. Esta será la primera de una serie de entradas que le voy a dedicar a Carlos, un antiguo compañero mío y que me ha enseñado a desaprender; el primer guiño a Carlos será abandonar mi subversión local para conectar mi RStudio con GitHub. Todo el trabajo que voy desarrollando lo tenéis en https://github.com/analisisydecision/Modelo1. Si echáis un vistazo al repositorio ya os podéis imaginar hacia dónde irán encaminadas esta serie de entradas. ...

7 de noviembre de 2018 · rvaquerizo

Truco Excel. Transponer una fila en varias columnas con DESREF

Creo que alguna vez me lo han preguntado. Se trata de transponer en Excel el contenido de una fila en varias columnas; como es habitual (sobre todo si escribo yo), una imagen vale más que mil palabras: En este caso se trata de pasar de una fila a tres columnas, por lo que se trata de que la función DESREF tiene que moverse en función del elemento que va a transponer. En este caso, empezando desde A1, tenemos que generar un autonumérico para las columnas que se ha de mover de 3 en 3, por lo que multiplicaremos por 3 y sumaremos la columna: ...

30 de septiembre de 2018 · rvaquerizo

Aprende Pyspark sin complicaciones

Hace tiempo un gran data engineer me preparó una máquina virtual para hacer pinitos con pyspark y llevaba tiempo pensando en como poder publicar trucos y ejemplos con pyspark sin necesidad de máquinas virtuales y empleando notebooks. Ya he encontrado la mejor manera, los contenedores de docker. Cuanto más profundizo en docker más me gusta trabajar con contenedores y con esta entrada me váis a entender perfectamente. El primer paso es instalar docker y arrancar el terminal. La idea de docker es ejecutar un contenedor en cualquier máquina independientemente del sistema operativo. Instalar spark en windows es un dolor de cabeza, si disponemos de una máquina virtual con linux es más sencillo, pero imaginad que, con dos líneas de código ya podéis trabajar con un notebook y pyspark, pues eso lo podemos hacer con docker. ...

7 de septiembre de 2018 · rvaquerizo

Crear archivo csv desde SAS con Python

Con la librería sas7bdat de Python podemos leer archivos SAS y crear directamente un data.frame; es la mejor librería para hacerlo: si la tabla SAS que deseáis leer está comprimida (compress = yes), con pandas no podréis hacerlo. Pero tengo que agradecer a mi compañero Juan que me haya descubierto la función convert_file para pasar directamente el archivo SAS a CSV: es más eficiente y parece que consume menos recursos del equipo. La sintaxis es muy sencilla: ...

25 de agosto de 2018 · rvaquerizo

Truco Python. Seleccionar o eliminar variables de un data frame en base a un prefijo, sufijo o si contienen un caracter

A la hora de seleccionar las características de un data frame, es posible que nos encontremos con la necesidad de seleccionar o eliminar características del data frame y que el nombre de esas características tenga un determinado patrón. Esta labor la podemos realizar mediante selección de elementos en listas; en esta entrada del blog vamos a tener tres tipos de selecciones: Seleccionar o eliminar aquellas variables que empiezan por un determinado prefijo. Seleccionar o eliminar aquellas variables que contienen una cadena de caracteres. Seleccionar o eliminar aquellas variables que finalizan con un sufijo. Para ilustrar este trabajo, generamos un data frame con datos aleatorios y 10 columnas: ...

22 de mayo de 2018 · rvaquerizo

Truco Python. Agrupar variable en función de la frecuencia

Me ha surgido la necesidad de crear una nueva variable en un data frame a partir de la frecuencia de otra; es decir, quedarme con los valores más frecuentes y aplicar una categoría “resto” para aquellos valores que no estén entre los más frecuentes. Para realizar esto, se me ha ocurrido la siguiente función en Python: def agrupa_frecuencia(var_origen, var_destino, df, grupos, valor_otros): df_grp = df[var_origen].value_counts() list_grp = list(df_grp.iloc[0:grupos,].index) df[var_destino] = df[var_origen].map(lambda x: x if x in list_grp else valor_otros, na_action='ignore') Es una función con más parámetros que líneas, pero necesitamos una variable de origen, una variable de destino que será la que calcularemos, el data frame sobre el que realizamos la tarea, el número de grupos más otro que será el «resto» y dar un valor a ese «resto». La función lo que hace es una tabla de frecuencias ordenada descendentemente con value_counts() y creamos una lista con el número de grupos que deseamos. Por último, mediante lambdas, si la variable origen está en la lista generada anteriormente le asignamos el mismo valor; en caso contrario, asignamos el valor «resto». ...

18 de mayo de 2018 · rvaquerizo

Libro de R de Carlos Gil

Muchos de los lectores de esta bitácora conocéis https://www.datanalytics.com/, el blog de Carlos Gil. In él ha publicado un libro/manual de R de acceso libre para todos aquellos que necesitéis una guía que abarque desde lo más básico al tratamiento de datos con R, pasando por Shiny y análisis estadísticos de esos «viejunos» tan denostados últimamente. De todas formas, no sé cómo no deja este mundillo y se dedica plenamente a su https://martinacocina.es/. In palabras de mi hijo: «El mejor brunch de Madrid, un 10». Saludos.

10 de abril de 2018 · rvaquerizo