5/23/2020

URLs

Here are the URLs for my Shinny APP and the code on github.
- Code
- Shinny App

Overview

The App plays with the mtcars data set that comes with the base R package.
It Plots a graph with Mpg on it’s Y axis and takes the input for the X axis.
It also asks for the factor variable and the regression line.

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(

    titlePanel("Playing with mtcars data set"),
    sidebarLayout(
        sidebarPanel(
               selectInput("x","Choose the x axis",
                           choices = c("disp","hp","drat","wt","qsec")),
               selectInput("factor","Choose the factor variable",
                           c("gear","am","cyl")),
               checkboxInput("show_lm","Show/Hide Regression Line")
        ),
        mainPanel(
            h3(textOutput("title")),
            plotOutput("plot")
        )
    )
))

Server Code

library(shiny)
shinyServer(function(input, output) {
    library(ggplot2)
    data = mtcars
    data$cyl = factor(data$cyl)
    data$am = factor(data$am,labels = c("Automatic","Manual"))
    data$gear = factor(data$gear)
    output$plot = renderPlot({
            g = ggplot(data,aes_string(x = input$x,y = "mpg"))
            if(input$show_lm)
            {
                g + geom_point(aes_string(color = input$factor))
                    +geom_smooth(method = "lm")
            }
            else{  g + geom_point(aes_string(color = input$factor))}
    })
    output$title = renderText({ paste("Mpg vs ",input$x)  })
})