12 How to learn Shiny

It’s cool if we can make shiny apps, and sometimes we are asked to make a shiny app at work. So, we do want and need to learn the Shiny package. The question is: How can we quickly learn it? I don’t think there is the best answer to this question, because we all have different learning styles and “one man’s meat is [possibly] another man’s poison.” Here, based on my learning experience, just tell you how I learned the Shiny stuff; it’s only for your reference.

  1. I watched the three webinars presented by Garrett Grolemund a few times; the links are: https://www.rstudio.com/resources/webinars/how-to-start-with-shiny-part-1/ https://www.rstudio.com/resources/webinars/how-to-start-with-shiny-part-2/ https://www.rstudio.com/resources/webinars/how-to-start-with-shiny-part-3/

  2. I watched Winston Chang’s webinar (https://www.rstudio.com/resources/webinars/dynamic-dashboards-with-shiny/) a couple of times.

  3. Practice, using this template

library(shiny)

ui <- fluidPage(
xxxxInput(),
xxxxOutput()
)

server <- function(input, output)
{
 R code
}

shinyApp(ui = ui, server = server)

for example,

library(shiny)

ui <- fluidPage(
  titlePanel(title = "Shiny Exercise"),
  sidebarPanel(width = 4,
    sliderInput("RandNum", label = "choose a number", 
      value = 20, min = 10, max = 100)
  ),
  mainPanel(wideth = 8, plotOutput("scatter"))
)

server <- function(input, output)
{output$scatter <- renderPlot({
  x <- rnorm(input$RandNum)
  y <- rnorm(input$RandNum)
  plot(x, y, xlab = "x", ylab = "y", main = "Scatter plot")
})
 
}

shinyApp(ui = ui, server = server)

Below is a screenshot

  1. I made several small apps and published them on https://www.shinyapps.io/ e.g. see these three: https://larryzhang.shinyapps.io/histogramorboxplot/, https://larryzhang.shinyapps.io/distributions/, and https://larryzhang.shinyapps.io/city_map/