interactive data visualization and reporting
play

Interactive data visualization and reporting Dr. etinkaya-Rundel - PowerPoint PPT Presentation

Interactive data visualization and reporting Dr. etinkaya-Rundel 2018-04-18 Project tips https://www.youtube.com/watch?v=vGUNqq3jVLg Outline Review Stop-trigger-delay Shiny in Rmd Deploying your app Your turn! Review


  1. Interactive data visualization and reporting Dr. Çetinkaya-Rundel 2018-04-18

  2. Project tips https://www.youtube.com/watch?v=vGUNqq3jVLg

  3. Outline ‣ Review ‣ Stop-trigger-delay ‣ Shiny in Rmd ‣ Deploying your app ‣ Your turn!

  4. Review Shiny from

  5. Is there something wrong with this? If so, what? Fix it in review/mult_3.R . ui <- fluidPage( titlePanel("Multiply by 3"), sidebarLayout( sidebarPanel( sliderInput("x", "Select x", min = 1, max = 50, value = 30) ), mainPanel( textOutput("x_updated") ) ) ) server <- function(input, output) { mult_3 <- function(x) { x * 3 } current_x <- reactive({ mult_3(input$x) }) output$x_updated <- renderText({ current_x }) }

  6. See review/whats_wrong.R . There are a bunch of small mistakes. See how many you can catch and fix.

  7. Is there something wrong with this? If so, what? Fix it in review/mult_3.R . ui <- fluidPage( titlePanel("Multiply by 3"), sidebarLayout( sidebarPanel( sliderInput("x", "Select x", min = 1, max = 50, value = 30) ), mainPanel( textOutput("x_updated") ) ) ) server <- function(input, output) { mult_3 <- function(x) { x * 3 } current_x <- reactive({ mult_3(input$x) }) output$x_updated <- renderText({ current_x }) }

  8. Is there something wrong with this? If so, what? Fix it in review/add_2.R . ui <- fluidPage( titlePanel("Add 2"), sidebarLayout( sidebarPanel( sliderInput("x", "Select x", min = 1, max = 50, value = 30) ), mainPanel( textOutput("x_updated") ) ) ) server <- function(input, output) { add_2 <- function(x) { x + 2 } current_x <- add_2(input$x) output$x_updated <- renderText({ current_x }) }

  9. Stop - delay - trigger Shiny from

  10. Stop with isolate() ‣ Wrap an expression with isolate() to suppress its reactivity ‣ This will stop the currently executing reactive expression/observer/output from being notified when the isolated expression changes

  11. Only update the alpha level when other inputs of the plot change movies/movies-06.R

  12. Delay with eventReactive() ‣ Calculate a value only in response to a given event with eventReactive() ‣ Two main arguments (the event to react to and the value to calculate in response to this event): eventReactive(eventExpr, valueExpr, …) simple reactive value - input$click , the expression that produces the return value when eventExpr call to reactive expression - df() , is invalidated or complex expression inside {}

  13. Remove the functionality for selecting types, instead randomly sample a user defined number of movies, but only sample and update outputs when an action button is pushed movies/movies-07.R

  14. Update the previous app so that a sample with a default sample size is taken and plotted upon launch movies/movies-08.R

  15. Trigger with observeEvent() ‣ Trigger a reaction (as opposed to calculate/recalculate a value) with observeEvent() ‣ Also two main arguments: observeEvent(eventExpr, handlerExpr, …) simple reactive value - input$click , expression to call whenever call to reactive expression - df() , eventExpr is invalidated or complex expression inside {}

  16. Add a button to write a csv of the current random sample movies/movies-09.R

  17. Stop-delay-trigger ‣ isolate() is used to stop a reaction ‣ eventReactive() is used to create a calculated value that only updates in response to an event ‣ observeEvent() is used to perform an action in response to an event

  18. Shiny in Rmd Shiny from

  19. You can embed a Shiny app in an R Markdown file. movies/movies-10.Rmd

  20. Deploying your app Shiny from

  21. Deploying your app ‣ Start with shinyapps.io ‣ Easy to use, secure, and scalable ‣ Comes with built in metrics ‣ Free tier available!

  22. Your turn! Shiny from

  23. Go to our final project on RStudio Cloud. Create a folder called Shiny. In that folder create an R script called app.R . Create a simple data visualization app for using your project. There is no Shiny app requirement for the project, this is just for practice.

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend