Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dashboards Interactivos en R con shiny - Sesión 1

Dashboards Interactivos en R con shiny - Sesión 1

Con Shiny es posible presentar resultados de análisis y modelos de una forma fácil de entender y usar para usuarios finales.
En este curso de 4 horas iremos desde la base de crear código reactivo con R a traducir el resultado de un análisis en un Dashboard interactivo. Ponemos énfasis en la variedad de elementos gráficos que están a nuestra disposición en Shiny para generar impacto en organizaciones con productos de datos.

También miramos las diferentes opciones de llevar aplicaciones Shiny a producción, tocando brevemente en las posibilidades comerciales, y dedicando más tiempo a las posibilidades de hacer lo mismo usando herramientas de código abierto.

Al final de este curso vas a ser capaz de traducir resultados de análisis a dashboards que se pueden desplegar a usuarios finales de tus productos de datos. Te da acceso a una caja de herramientas poderosa para generar impacto en tu organización a través de los datos.

Quieres mas infórmación sobre los cursos de Data Latam? Apuntate en nuestra lista de correo para recibir noticias:

http://www.datalatam.com/noticias

Data Latam es una comunidad Latinoamericana de profesionales y académicos aplicando ciencia de datos en su día a día en la industria de datos en Latino América. En sus eventos, cursos y programas de extensión exploramos tecnologías, aprendemos sobre ciencia de datos, hablamos de tendencias y eventos relevantes de la industria, y compartimos novedades del sector.

Frans van Dunné

May 12, 2018
Tweet

More Decks by Frans van Dunné

Other Decks in Programming

Transcript

  1. Dashboards Interactivos en R con shiny Curso Profesional San José,

    12 de Mayo 2018 www.datalatam.com @datalatam fb/datalatam
  2. 08:30 - 09:00 Llegada (café) 09:00 - 09:30 Introducción a

    Programación Reactiva 09:30 - 10:00 ui.R & server.R | input & output 10:00 - 10:30 Shiny Dashboard 10:30 - 11:00 Pausa (café & networking) 11:00 - 12:00 Incluir figuras y cuadros 12:00 - 12:30 Desplegar sobre Shiny Server (usando shinyapp.io 12:30 - 13:00 Resumen, discusión y Cierre 13:00 - 14:30 Almuerzo y Networking
  3. ¿Tenemos todo al alcance? (los que quieren seguir de forma

    activa) 1. Saluda al compañer@ del lado 2. Verifica que uno de los dos tiene a. R >= 3.4 b. RStudio c. Conexión a internet 3. Baja los datos y ejemplos a. https://github.com/datalatam/shiny-r
  4. Website estatico library(shiny) ui <- fluidPage( h1("¡Hola Data Latam!") )

    server <- function(input, output) { } shinyApp(ui = ui, server = server)
  5. Website interactivo library(shiny) ui <- fluidPage( h1("Hola Data Latam!") actionButton(inputId

    = "boton", label = "Boton") ) server <- function(input, output) { } shinyApp(ui = ui, server = server)
  6. Reactividad Cuando una entrada (input) cambia, el servidor reconstruye cada

    salida (output) que depende de ella (también si la dependencia es indirecta). Puedes controlar este comportamiento a través de la cadena de dependencias.
  7. - reactive x <- reactive({ input$a }) output$y <- renderText({

    x() }) output$z <- renderText({ x() }) input$a x
  8. input$x expresión() output$y run(esto) Activa código arbitrario observeEvent() observe() Programa

    actualizaciones invalidateLater() Reacciones Modulares reactive() Impide reacciones isolate() Procesa output reactivo render*() Atrasa reacciones eventReactive() Actualiza Crea tus propios valores reactivos reactiveValues() ReactiveFileReader() reactivePoll() *input()
  9. Estructura Cada app es una carpeta que contiene un archivo

    server.R y comúnmente un archivo ui.R (opcionalmente contiene archivos extra) .r .r server.R ui.R DESCRIPTION README <otros archivos> www (opcional) usado en modo “showcase” (opcional) datos, scripts, etc. (opcional) carpeta de archivos para compartir con el navegador (imágenes, CSS, .js, etc.) Debe llamarse "www" App se llama como el nombre de la carpeta miapp
  10. A B • Define los componentes en R para tu

    app entre las llaves {} • Provee server.R con el mínimo de código necesario A B
  11. A B C • Define los componentes en R para

    tu app entre las llaves {} • Guarda cada componente R destinados para tu interfaz (UI) • Provee server.R con el mínimo de código necesario A B C
  12. Crea cada componente de salida con una función render*. A

    B C D • Define los componentes en R para tu app entre las llaves {} • Guarda cada componente R destinados para tu interfaz (UI) • Provee server.R con el mínimo de código necesario A B C D
  13. Crea cada componente de salida con una función render*. A

    B C D • Dale a cada función render* el código R que el servidor necesita para construir el componente. El servidor notará valores reactivos y construirá el componente cada vez que valores cambian. • Define los componentes en R para tu app entre las llaves {} • Guarda cada componente R destinados para tu interfaz (UI) • Provee server.R con el mínimo de código necesario A B C D E E
  14. Crea cada componente de salida con una función render*. A

    B C D F • Dale a cada función render* el código R que el servidor necesita para construir el componente. El servidor notará valores reactivos y construirá el componente cada vez que valores cambian. Has referencia a valores en “widgets” con input$<nombre del widget>. • Define los componentes en R para tu app entre las llaves {} • Guarda cada componente R destinados para tu interfaz (UI) • Provee server.R con el mínimo de código necesario A B C D E F E
  15. Crea cada componente de salida con una función render*. A

    B C D F • Dale a cada función render* el código R que el servidor necesita para construir el componente. El servidor notará valores reactivos y construirá el componente cada vez que valores cambian. Has referencia a valores en “widgets” con input$<nombre del widget>. • Define los componentes en R para tu app entre las llaves {} • Guarda cada componente R destinados para tu interfaz (UI) • Provee server.R con el mínimo de código necesario A B C D E F E
  16. • fuera de shinyServe • • • dentro de shinyServer

    • • • render reactive observe •
  17. ui.R Una descripción de la interfaz (UI) de tu app,

    la página web que muestra tu app.
  18. Incluye el mínimo de código necesario para ui.R • usa

    navbarPage en vez de fluidPage para múltiples páginas conectados con un navbar A A
  19. Incluye el mínimo de código necesario para ui.R • usa

    navbarPage en vez de fluidPage para múltiples páginas conectados con un navbar A B Define el diseño para tu UI. • sidebarLayout con sidebarPanel y mainPanel. • splitLayout, flowLayout, e inputLayout • fluidRow y column A B
  20. Incluye el mínimo de código necesario para ui.R • usa

    navbarPage en vez de fluidPage para múltiples páginas conectados con un navbar En cada panel o columna coloca Componentes, objetos de salida que has definido en server.R. Para colocar un componente: Selecciona la función *Output que construye el tipo de objeto que quieres colocar en la UI. Pasa un nombre a la función *Output el nombre correspondiente al nombre del objeto en server.R A B C Define el diseño para tu UI. • sidebarLayout con sidebarPanel y mainPanel. • splitLayout, flowLayout, e inputLayout • fluidRow y column A B C
  21. fluidRow() ui <- fluidPage( fluidRow( column(width = 4), column(width =

    2, offset = 3) ), fluidRow( column(width = 12) ) ) 1 12
  22. fluidRow() ui <- fluidPage( fluidRow( column(width = 4), column(width =

    2, offset = 3) ), fluidRow( column(width = 12) ) ) 1 12