2/17/2020

Reproducible Pitch

Overview

The shiny app plots MPG vs different variables from the MTCARS dataset.

head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

UI Code

library(shiny)
shinyUI(fluidPage(
  
  # Application title
  titlePanel("MTCARS Dataset - Miles per Gallon"),
  
  sidebarPanel(
    selectInput("variable", "Variable:", 
                c("Cylinders" = "cyl",
                  "Transmission" = "am",
                  "Carborators" = "carb",
                  "Gears" = "gear"))
    ),
  
  mainPanel(
    # Output: Formatted text for caption ----
    h3(textOutput("caption")),
    
    # Output: Plot of the requested variable vs mpg ----
    plotOutput("mpgPlot")
  )
))

Server Code

library(shiny)
library(plotly)

inData <- mtcars
inData$am <- factor(inData$am, labels = c("Automatic", "Manual"))

shinyServer(function(input, output) {
  
  formulaText <- reactive({
    paste("MPG vs ", input$variable)
  })
  
  output$caption <- renderText({
    formulaText()
  })
  output$mpgPlot <- renderPlot({
    ggplot(inData, aes_string(y=input$variable, x="mpg")) + geom_point()
  })
  
})