Mapas municipales de España en R, con la ayuda de Excel

municipios extremadura R 1

El escribir sobre el BDT de Madrid me ha hecho recordar mi trabajo con statial data de R. Los mapas de spatial data los podemos obtener de forma gratuita de http://www.gadm.org/country y en este caso vamos a descargarnos para España un SpatialPolygonsDataFrame específico para R de nivel 4 que está a nivel municipal (repito nivel todas las veces necesarias), el archivo que os debéis descargar se llamará ESP_adm4.RData. Si buscáis un poco en google encontraréis documentación acerca de este tipo de archivos de R y veréis que se pueden hacer maravillas. En este caso quiero hacer un ejemplo lo más sencillo posible, muy artesanal y casero. Con un poco de imaginación podréis complicarlo o incluso hacer una herramienta en Excel que hiciera mapas con R.

Mapas de la provincia de Madrid con BDT

Mapa Madrid por municipios

JL un lector del blog me ha descubierto esta herramienta muy útil para la creación de mapas de Madrid, se trata de una herramienta pública donde tenemos un gran número de variables para poder representar y además podemos representar nuestras propias variables. La web es:

http://www.madrid.org/bdt/Inicio.icm

El BDT de la Comunidad de Madrid, el Banco de Datos Territorial nos permite plasmar en un mapa un gran número de variables del sistema de información estadística de la Comunidad de Madrid y nuestras propias variables que podemos subir tras darnos de alta en menos de 3 minutos. A partir de ahí en Crear Mapas Propios podemos crear nuestros propios mapas de usuario. En Crear nuevas variables podemos empezar a trabajar con nuestras propias variables que primero definimos y posteriormente podemos editar los datos y subirlos desde Excel. Para subir un Excel yo recomiendo descargar uno de los que tiene datos del BDT y ponerle nuestros datos. Es muy sencillo hacer unos mapas de forma tan sencilla que JL y yo hemos hecho cosas espectaculares.

Trucos SAS. Calcular percentiles como Excel o R

Alguna vez habréis calculado un percentil en Excel o en R y os saldrá distinto de SAS. Esto se debe a que los métodos de cálculo son distintos tanto R como Excel utilizan el mismo método consistente en una interpolación en función de la distancia entre los registros que dan la posición del percentil. SAS dispone de 5 métodos distintos para calcular el percentil y por defecto emplea el número 5 y ninguno de los 4 métodos restantes es el que utilizan R o Excel. Pero podemos programar el método de un modo sencillo, cuesta más entender porque no lo implementa SAS que calcularlo. A continuación tenéis una sencilla macro que calcula el percentil con el método de Excel:

Aprendiendo Shiny. La función shinyUI seguida de fluidPage o fluidRow

Con shinyUI creamos el interface de nuestra app de shiny y cuando la usamos inmediatamente ponemos fluidPage o fluidRow (por lo menos en estos primeros acercamientos). Utilizaremos una u otra en función del diseño que deseamos. Los argumentos que pueden tener fluidPage o fluidRow son múltiples. Algunos de los que estoy usando:

  • titlePanel. Imprescindible, sirve para poner títulos a nuestra app
  • headerPanel. Para titular nuestro panel
  • wellPanel para introducir tablas con formato. Podremos jugar con css para cambiar los formatos.
  • Elementos para modificar valores como:
    • sliderInput. Nos permite crear los slider como hemos visto en los ejemplos
    • textInput. Para introducir texto «libre»
    • selectInput. Crea un combo
    • checkboxInput. Obvio
    • ….
  • actionButton
  • mainPanel. Es el cuerpo de nuestra app y puede estar compuesto de:
    • plotOutput
    • tabPanel nos permite poner tablas HTML
    • si deseamos crear salidas más complejas podemos usar mainPanel y tabular nuestras salidas. Por ejemplo un cuadro de mando

A muy grandes rasgos esto es lo que podemos empezar a hacer con nuestro interfaz. Cada vez me recuerda más a SAS AF o appDev Studio lenguaje de programación que tengo más olvidado que el JCL. No es programar en R, aunque no es tan difícil como mi querido Tclk. Saludos.

Aprendiendo shiny. server.R ui.R

Sigo con shiny y RStudio aver que cosas soy capaz de hacer. Hay dos elementos básicos a la hora de crear aplicaciones con shiny:

  • server.R es el lugar donde definimos la función server. Es necesario empezar a familiarizarnos con el lenguaje de shiny.
  • ui.R es el user interface es el lugar donde definimos lo que vamos a ver con nuestra aplicación.

El elemento fundamental de server.R es shinyServer(función) en los ejemplos que he estado viendo la función tiene una entrada y una salida. Imagino que podremos dar más complejidad a estas funciones. De momento una entrada y una salida. En ui.R es donde definimos la salida en HTML que deseamos para nuestra aplicación en el tutorial de shiny podéis ver muchas posibilidades. La función principal para crear estos interfaces es shinyUI(definición del interface). No parece complicado de definir el interface con unos conocimientos básicos de HTML y conociendo el código específico de shiny. Ya no programamos tanto con R, ahora programamos con shiny.

Aprendiendo shiny con vosotros

No queda otro remedio. Necesito actualizarme un poco y comenzar a usar shiny y espero poder llegar a publicar en el blog las aplicaciones resultantes. No sé si seré capaz pero allá vamos. Lo primero es tener Rstudio instalado y empezar a escribir:

install.packages(«shiny») system.file(«examples», package=»shiny»)

Ya podemos ver los ejemplos de un modo muy sencillo:

runExample(«05_sliders») # slider bars

Aparece una app que podemos ver tanto en RStudio como en nuestro navegador. Si modificamos las barras cambian los números de la tabla de la derecha. Muy sencillo. Para comenzar a trabajar debemos conocer dos códigos de R que están guardados en su correspondiente carpeta. Son server.R y ui.R que podemos abrir en la carpeta [deWindows] C:\Users\fulanito\Documents\R\win-library\3.1\shiny\examples\05_sliders Sin embargo nosotros vamos a copiar y pegar esta carpeta en la misma ubicación pero le damos el nombre prueba y abrimos server.R

Cuando paralelizar procesos con R era otra cosa

Allá en noviembre de 2011 en las III jornadas de usuarios de R en España José Ramón Díaz Uriarte nos habló de paralelizar procesos con R, los principios de ese concepto que han denominado Big Data:

http://usar.org.es/pdfs/Diaz_Uriarte-final.pdf

Han avanzado los tiempos en el mundo de R y de la paralelización de procesos. Y es quizá lo que hará que R sobreviva frente a otras herramientas que no se han subido al carro por ser encapsuladas y “oscuras” (se me ocurren algunas). El problema es que perdemos mucho tiempo montando complejos sistemas, tiempo que podría ser empleado en un trabajo que aportara más valor. Necesitamos oír la expresión “yo no paralelizo a mi me paralelizan”. Ese será el momento de R. ¿Lo conseguirá Microsoft? ¿Lo conseguirá Yhat?

NOTICIA: Microsoft compra Revolution Analytics

R

Noticia bomba: Microsoft compra Revolution Analytics conocida vía Emilio Lopez Cano (@emiliolopezcano). El gigante ha comprado la principal «ala comercial» de R. Los detalles de la compra en el siguiente enlace de su blog corporativo:

http://blogs.microsoft.com/blog/2015/01/23/microsoft-acquire-revolution-analytics-help-customers-find-big-data-value-advanced-statistical-analysis/

La va a preparar buena con Microsoft Azure. Por otro lado la respuesta de David Smith:

http://blog.revolutionanalytics.com/2015/01/revolution-acquired.html

Auguro y sobre todo deseo mucho éxito a este nuevo proyecto.

Truco Excel. Gráfico de puntos con colores

Un gráfico de dispersión en Excel en el que los puntos puedan ser identificados si pertenecen a un grupo. Es una duda que plantearon hace unos días en el blog. Con otras herramientas es bastante sencillo, pero en el caso de Excel la tarea no es tan evidente. Para poder hacer gráficos de este tipo he construido una macro que podéis utilizar si previamente la adaptáis a vuestros datos. El código que podéis adaptar una vez halláis creado vuestro gráfico de dispersión es:

Reunión del grupo de usuarios de R en Madrid el 28 de enero

R

Aquí tenéis toda la información acerca de la siguiente reunión del grupo de usuarios de R en Madrid:

http://madrid.r-es.org/miercoles-28-de-enero-2015/

Estaba previsto que hablara yo mismo sobre R y SAS más concretamente realizar árboles de decisión con R pero al final no he podido por un problema. Pero en siguientes reuniones estaré ya que me gustaría iniciar una serie de monográficos que he llamado R y otros.

Truco Excel. Formatos condicionales para crear rango de colores

Un truco de Excel poco ortodoxo. Aprovechar los colores que nos ofrece un formato condicional sin necesidad de emplear el formato condicional para crear un rango de colores. Parece un trabalenguas pero puede ser muy útil cuando trabajamos con Visual Basic. En mi caso particular es muy útil disponer de estas paletas de colores para hacer mapas mucho más vistosos. El truco es muy sencillo empezamos por escribir números del 1 hasta el número de colores que deseamos y elegimos el formato condicional a aplicar:

Tipos de merge con SAS o WPS

Una chuleta con los tipos de merge que se pueden hacer en un paso data con SAS:

Para aquellos que empiezan a trabajar con SAS será de mucha utilidad. Un saludo.

Determinar el mímino tamaño muestral para detectar un cambio en la fracción no conforme

Este año he aprendido algo sobre metodología 6 sigma para el control de la calidad, me gustó mucho lo que aprendí. Para la realización de algunos ejercicios cree libros Excel y algún proceso SAS. Hoy quería traeros al blog una macro de SAS que nos permite determinar el tamaño mínimo muestral para detectar un cambio en la fracción no conforme con una determinada probabilidad. El programa es un bucle de SAS que crea los límites de control para la fracción no conforme y estandariza la diferencia del límite superior con la nueva fracción no conforme. Se calcula la probabilidad que deja este dato estandarizado y el paso del bucle será el número mínimo de muestras. Es más sencillo el código que la definición: