Eesti autode jaotus võimsuse ja mootori mahu järgi

show with app
  • app.R
library(shiny)
library(ggplot2)
library(dplyr)

#setwd("./Roppimine/Automaks/CarDistribution")


ui <- fluidPage( 
  
  #Input() sections
  titlePanel("Eesti autode jaotus võimsuse ja mootori mahu järgi"),

  sidebarLayout(
    sidebarPanel(
  
      #Auto mootori liik
      selectInput(inputId ="Mootorityyp", "Vali auto mootori tüüp",
                  c("Kõik",
                    "Bensiin",
                    "Bensiin hübriid",
                    "Diisel", 
                    "Diisel hübriid",
                    "Bensiin kat.",
                    "Diisel",       
                    "Diisel hübriid",
                    "Elekter",
                    "Gaas",
                    "Surugaas (CNG)",
                    "Veeldatud gaas (LPG)"
                    #Määramata
                  ))
      
    ),
    mainPanel(
      plotOutput(outputId="scatter1",  brush = "plot_brush"),
      h4(outputId="tabelipealkiri"),
      
      column(4,
             tableOutput(outputId = "tabel")
      ),
      #br(),br(),
      #h4("Joonisel märgitud sõidukid"),
      dataTableOutput(outputId = "valitud")
  )

  )

)

server <- function(input, output) {

  load("data/andmedshiny.Rda")
  
  
  andmedjoonisele <- reactive({
    if (input$Mootorityyp=="Kõik") {
      andmedjoonisele<-andmed
    } else {
      andmedjoonisele<-andmed[andmed$Mootorityyp==input$Mootorityyp,]
    }
    andmedjoonisele
  })
  
  output$scatter1<-renderPlot({

    mysubtitle<-paste0("Mootori tüüp: ", input$Mootorityyp)
  ggplot(andmedjoonisele(), aes(x=Mootorimaht, y=Mootorivoimsus, color=Aasta)) +
      geom_point(aes(size=Arv)) +
    labs(y="Mootori võimsus", x="Mootori maht", title="Sõiduautode jaotus mootori võimsuse ja mahu järgi, 2016", subtitle=mysubtitle,
           caption="Allikas: Maanteeameti andmed 31.08.2016")
    })
  
  output$tabelipealkiri<-renderPrint({
    
    paste0("Autode arv mootori tüübi järgi: ", input$Mootorityyp)
    
  })
  
  output$tabel<-renderTable({
    
    andmedtabelisse <- andmedjoonisele() %>%
          group_by(Aasta) %>% 
          summarize(Arv=sum(Arv)) %>%
          select(Aasta, Arv)
    
    andmedtabelisse
    
  }, 
  digits=0
  
  )
  
  
  # Create data table
  output$valitud <- DT::renderDataTable({
    brushedPoints(andmedjoonisele(), brush = input$plot_brush) %>% 
      select(Valjalaskeaasta, Mootorivoimsus, Mootorimaht, Mootorityyp, Keretyyp)
  })
  
  
}

shinyApp(ui = ui, server = server)