Nuevo Gadget Shiny R

Continuando con la evolución de los Gadgets/Dashboards en la plataforma, en la última release, se ha añadido un nuevo tipo de Gadget denominado Shiny R. Este Gadget, está basado en el potente lenguaje analítico R, a través del framework de Shiny.

Shiny es capaz de construir aplicaciones Web a través de código en R ejecutado en un servidor. Permite, de forma muy sencilla vía scripts de R, crear visualizaciones HTML5 con librerías Javascript muy potentes, como D3, GoogleCharts, mapas de Leaflet… También, como capacidad natural de R, es posible importar librerías disponibles en el repositorio del CRAN para permitir hacer una analítica profunda sobre los datos.

Para crear un nuevo Gadget Shiny R, lo primero que debemos hacer es situarnos en el menú de la consola para crear los mismos:

Una vez dentro nos encontramos con la siguiente pantalla:

Tenemos varias secciones en la pantalla sobre las que podemos incluir información:

· Nombre del Gadget

· ui.R -> En esta sección incluiremos el código de R Shiny encargado de la interfaz del gadget, es decir, la parte que genera todo el HTML, estilos y javascript.

· server.R -> En esta sección se incluirá el código de R Shiny, correspondiente a la parte servidor de Gadget.

· Archivos WWW -> Mediante Drag & Drop se podrán incluir archivos en esta sección, que serán utilizados por el Gadget, principalmente orientados a la parte de interfaz incluyendo hojas de estilos, librerías javascript o contenidos multimedia.

Para facilitar la tarea de programar al usuario los scripts de R, se ha incluido un editor de texto avanzado, el cual permite entre otras, varias opciones como:

· Selección por columnas de texto manteniendo pulsada la tecla Alt.

· Edición en pantalla completa: F11

· Búsqueda de palabras Ctrl + F

· Coloreado de palabras clave, cierre de llaves…

El archivo ui.R tendrá que tener siempre la misma estructura:


library(shiny)

# Define UI for application

shinyUI(

#UI CODE

)

Pasa lo mismo con el server.R:


library(shiny)

# Define server logic

shinyServer(function(input, output) {

#SERVER CODE

})

Usando el tutorial 1 de shiny http://shiny.rstudio.com/tutorial/lesson1/ tenemos los dos archivos que quedarían:

ui.R


library(shiny)

# Define UI for application that draws a histogram

shinyUI(fluidPage(

# Application title

titlePanel("Hello Shiny!"),

# Sidebar with a slider input for the number of bins

sidebarLayout(

sidebarPanel(

sliderInput("bins",

"Number of bins:",

min = 1,

max = 50,

value = 30)

),

# Show a plot of the generated distribution

mainPanel(

plotOutput("distPlot")

)

)

)) 

server.R:


library(shiny)

# Define server logic required to draw a histogram

shinyServer(function(input, output) {

# Expression that generates a histogram. The expression is

# wrapped in a call to renderPlot to indicate that:

#

# 1) It is "reactive" and therefore should re-execute automatically

# when inputs change

# 2) Its output type is a plot

output$distPlot <- renderPlot({

x <- faithful[, 2] # Old Faithful Geyser data

bins <- seq(min(x), max(x), length.out = input$bins + 1)

# draw the histogram with the specified number of bins

hist(x, breaks = bins, col = 'darkgray', border = 'white')

})

}) 

Haciendo click en el botón Regenerar veremos el resultado de nuestro código en este Gadget:

Para poder interactuar con Sofia2, se puede incluir en el código de R la librería ApiSofia2R.R que posibilita la interacción con la plataforma de Gadget. Pudiendo llegar a Gadget tan complejos como pensemos y viendo resultados como los siguientes:

Nuevo Gadget Shiny R

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s