7/21/2018

Week 4 submission objective

The UI takes in the different features from the mtcars inbuilt R dataset. The output is the histograms based on the selection of features and bin size. Server logic draws a histogram, and generate bins based on input$bins from ui.R

Data Summary

str(mtcars)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...

Server.R code

server <- function(input, output) {
  output$distPlot <- renderPlot({
    if(input$p=='a'){
      i<-1
    }
    if(input$p=='b'){
      i<-2
    }
    if(input$p=='c'){
      i<-3
    }
    if(input$p=='d'){
      i<-4
    }
    x    <- mtcars[, i]
    bins <- seq(min(x), max(x), length.out = input$bins + 1)
    hist(x, breaks = bins, col = 'blue', border = 'black')
  })
}

UI.R code

ui <- fluidPage(
  titlePanel("Cars dataset feature distribution"),
  sidebarLayout(
    sidebarPanel(
      radioButtons("p", "Select column of inbuilt R cars dataset:",
                   list("mpg"='a', "cyl"='b', "carb"='c', "drat"='d')),
      sliderInput("bins",
                  "Number of bins:",
                  min = 1,
                  max = 100,
                  value = 50)
    ),
    mainPanel(
      plotOutput("distPlot")
    )
  )
)

Submission Output