Shiny

1. Cicle de vida

4. Llenguatge de programació

Descripció

Shiny és un package de R que facilita la creació d’aplicacions web i gràfics interactius directament des de R. Pot allotjar aplicacions independents en una pàgina web o incrustar-les en documents R Markdown o crear quadres de comandament usables des de R Studio. També és possible estendre aplicacions Shiny amb temes CSS, htmlwidgets i accions Javascript, per donar-los l’aspecte desitjat.

Enllaç al recurs

https://shiny.rstudio.com/

Exemple d’ús

El següent exemple mostra la construcció d’un histograma dinàmic utilitzant Shiny. El codi usat és el següent (s’han numerat les línies per millorar-ne la lectura):

1     # carregar el package        
2     library(shiny)       
3     # Nombre de variables
4     n <- 200
5    
6     # Interfície d'usuaris
7     ui <- bootstrapPage(
8       numericInput('n', 'Nombre d'observacions', n),
9       plotOutput('plot')
10    )
11
12    # Codi del servidor
13    server <- function(input, output) {
14      output$plot <- renderPlot({
15        hist(runif(input$n))
16      })
17    }
18
19    # Shiny app object
20    shinyApp(ui = ui, server = server)

Després de carregar el package Shiny mitjançant la línia 2, a la línia 4 s’inicialitza el nombre d’observacions a representar en l’histograma que dinàmicament podran ser introduïdes en la interfície (línia 8) com un camp numèric d’entrada.

Entre les línies 7 i 10 es defineix la interfície d’usuari, entre la qual es troba la caixa d’introducció del nombre d’observacions (línia 8) i la crida per a la representació gràfica de l’histograma (línia 9).

Posteriorment, entre les línies 13 i 17 es realitza el renderitzat en la part del servidor de l’histograma d’una distribució uniforme (generada mitjançant la funció de R runif), atenent al nombre d’observacions introduïdes per l’usuari en la interfície.

Finalment, a la línia 20 s’inicialitza l’app de Shiny establint interfície d’usuari i el servidor perquè les peticions puguin ser servides.

Enllaços relacionats

El package de R Shiny: https://cran.r-project.org/web/packages/shiny/index.html

Full de referència: https://www.rstudio.com/wp-content/uploads/2015/03/shiny-spanish.pdf