Shiny

Url de la presentación

Video de introducción

Para conocer lo que se puede hacer con las aplicaciones se recomienda ver este video.

¿Que es Shiny?

  • Shiny es un paquete de R.
  • Permite crear de manera fácil aplicaciones web desde R.
  • Permite convertir código de R en html.
  • Lo primero a hacer es instalar el paquete Shiny así:
install.packages("shiny")

Ventajas de crear apps con Shiny

  • Permite poner a disposición nuestro código en forma amigable.
  • Permitir que usuarios sin conocimientos de R usen los procedimientos.
  • Comunicar en forma didáctica ideas.
  • Crear presentaciones con apps incrustadas.
  • Divulgar conocimiento.
  • otras …

Ejemplo

Partes de una aplicación

Archivos para crear una aplicación

  1. ui.R: user interface file.

  2. server.R: server file.

ui.R

library(shiny)
shinyUI(fluidPage(
  titlePanel("Hello Shiny!"),
  sidebarLayout(
    sidebarPanel(
      sliderInput(inputId = "bins",
                  label = "Number of bins:",
                  min = 1,
                  max = 50,
                  value = 30) ),
    mainPanel(plotOutput("distPlot"))
  )
))

server.R

library(shiny)
shinyServer(function(input, output) {
  output$distPlot <- renderPlot({
    x    <- faithful[, 2]  # Old Faithful Geyser data
    bins <- seq(min(x), max(x), length.out = input$bins + 1)
    hist(x, breaks = bins, col = 'darkgray', border = 'white')
  })
})

¿Cómo correr la app?

Botón para correr apps

Shiny card reference in this link

Vamos a replicar la aplicación del ejemplo 1

Paso 1: Crear una carpeta para la aplicación.

Paso 2: Crear dos archivos vacíos en Rstudio con los nombres ui.R y server.R.

continuación

Paso 3: Copiar el siguiente código en el archivo ui.R

library(shiny)
shinyUI(fluidPage(
  titlePanel("Hello Shiny!"),
  sidebarLayout(
    sidebarPanel(
      sliderInput(inputId = "bins",
                  label = "Number of bins:",
                  min = 1,
                  max = 50,
                  value = 30) ),
    mainPanel(plotOutput("distPlot"))
  )
))

continuación

Paso 4: Copiar el siguiente código en el archivo server.R

library(shiny)
shinyServer(function(input, output) {
  output$distPlot <- renderPlot({
    x    <- faithful[, 2]  # Old Faithful Geyser data
    bins <- seq(min(x), max(x), length.out = input$bins + 1)
    hist(x, breaks = bins, col = 'darkgray', border = 'white')
  })
})

continuación

Paso 5: Correr la aplicación

Pasos para crear una nueva aplicación

Paso 1. Crear un esquema en papel de la aplicación.

Paso 2. Crear un archivo de prueba en R que haga lo que queremos con la App.

input <- NULL
input$n <- 100
input$media <- 15
input$desvi <- 2
x <- rnorm(n=input$n, mean=input$media, sd=input$desvi)
hist(x)

Paso 3. Crear los archivos ui.R y server.R.

Paso 4. Correr la aplicación.

Su turno

Construir una aplicación que tenga una apariencia como la mostrada abajo.

Felicitaciones, hiciste tu primera app