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:

Truco R. Añadir una marca de agua a nuestro gráfico con ggplot2

Un breve truco que tenía en la nevera. Añadir marcas de agua a los gráficos de R realizados con ggplot2. Quería dedicar una serie de monográficos a las marcas de agua y al final nunca acabé. Para ilustrar el ejemplo vamos a graficar la serie de visitas a esta web que nos ha dado Google Analytics:

# Objeto con las visitas
visitas=c(213,376, 398, 481,416, 505, 771, 883,686, 712 ,
883,993,1234 , 1528 ,1965 ,1676 ,1037 , 1487 ,1871 ,2725 ,2455 ,2856 ,
2868,2809 ,3326 ,4284 ,4599 ,3863 ,3778 ,5090 ,5510 ,5911 ,4460 ,5495 ,5290 ,
6407,5619 ,6494 ,5854 ,4940 , 4735 ,6049 ,6839 ,8695 ,7112 ,9207 ,8991 ,
10909 , 9647 , 10943 , 9819 , 8982 ,
8597,10004,12550,12025, 9108,10664, 9563,9751 ,11402 ,11875,10395,
10078,8706,10893, 13197,12868 ,9857 ,12119 , 13421 ,14411, 12820 , 14443 , 12713 ,
13869,11740,14887,17021,16827)
serie <- ts(visitas, start=c(2008, 4), end=c(2014, 11), frequency=12)

Hemos creado un objeto serie temporal del tipo ts y aprovecho esta entrada para contaros como transformar un objeto ts en un data frame. Recordamos que ggplot2 no puede graficar objetos ts (por lo menos hasta donde yo sé). Para la transformación del objeto emplearemos la función index del paquete zoo y mi querida función melt de reshape2:

ERROR: lazy loading failed for package con WIN 8

R

Cuando instalamos paquetes de R desde github con devtools puede aparecernos ERROR: lazy loading failed for package típico de un código:

require(devtools)
install_github(‘paquete@menda’)

El RStudio bajo Win 8 R comienza a descargarse en el temporal una serie de zip que nos permiten crear el paquete y en un punto pone ** preparing package for lazy loading e inmediatamente el ERROR. Ejecutamos install.packages(‘base64enc’) y ya no tendremos ese error. No todos los procesos de instalación desde github nos indican que ese es el problema. Saludos.

Grupo de interés local de usuarios de R en Madrid

R

Lo han preguntado en otro post y prefiero que disponga de entrada propia para ayudar a las búsquedas. El contenido de las reuniones anteriores a julio de 2014 está en la siguiente dirección:

http://r-es.org/Grupo+de+Inter%C3%A9s+Local+de+Madrid+-+GIL+Madrid

Ahora ya dispone de su propia URL:

http://madrid.r-es.org/

En ella podéis encontrar todos los datos de interés sobre el grupo. El miércoles nos vemos.