2022-08-04

Shiny App Description

  • Purpose: To illustrate different distributions
  • User chooses the distribution to display
  • Histogram and density plot of chosen distribution returned

Distributions

  • Normal
  • Exponential
  • Uniform
  • Binomial - If chosen, options for trial size are shown
    Trial sizes: 5, 50, 100, 500
  • 1000 random values calculated for chosen distribution
  • Default trial size for binomial distributions is 5

server.R Code

function(input,output) {
## Run random value function for chosen distribution
 typeDist <- reactive({
  if(input$dis=="norm") {p <- rnorm(1000) } 
   else if(input$dis=="exp") {p <- rexp(1000,5) } 
   else if(input$dis=="binom") {p <- rbinom(1000,5,.5) }
   else { p <- runif(1000) }

  ## Create the density plot for the input distribution
    output$distPlot <- renderPlot({
      hist(typeDist(), prob=TRUE, col="dodgerblue",xlab="Values")
      lines(density(typeDist()), lwd=2,col = "gold1")
    
      ## Plot the different binom dist based on user input
      if(input$dis=="binom"){
           if(input$trials==5){d <- rbinom(1000,5,.5)}
           else if(input$trials==50){d <- rbinom(1000,50,.5)}
           else if(input$trials==100){d <- rbinom(1000,100,.5)}
           else {d <- rbinom(1000,500,.5) 
           } 
        hist(d,prob=TRUE,lwd=2,col="dodgerblue",xlab="Trials")
        lines(density(d), lwd=2,col="gold1") }
    })

Example: Exponential Dist