Elementi interattivi in uno shinydashboard

Creare dashboard con shinydashboard

Png Kee Seng

Researcher

Scenario

  • Lavoriamo per un’agenzia turistica a Londra.

  • I turisti hanno bisogno di un alloggio.

  • Come possiamo aiutarli?

Grafica di Londra

  • Numero di annunci in un intervallo di prezzo
  • Proporzione di camere private
  • Prezzi medi
  • Alcuni grafici
  • Una tabella dati
  • Una mappa di Londra
1 Immagine di Freepik
Creare dashboard con shinydashboard

Schizzo del dashboard

Uno schizzo del dashboard.

Creare dashboard con shinydashboard

Creare il dashboard: impostare lo scheletro

Fai il wireframing impostando uno shinydashboard vuoto con titolo e pulsanti della sidebar.

header <- dashboardHeader(
  title = "Home rental listings")
sidebar <- dashboardSidebar()
body <- dashboardBody()
ui <- dashboardPage(header, 
                    sidebar, 
                    body)
server <- function(input, output) {}
shinyApp(ui, server)
Creare dashboard con shinydashboard

Creare il dashboard: aggiungere ValueBox

Aggiunta di valueBox come parte del wireframing.

In body:

fluidRow(
    valueBoxOutput(outputId = "count"),
    valueBoxOutput(outputId = "prop"),
    valueBoxOutput(outputId = "avg"))

In server:

output$count <- renderValueBox({
    valueBox(..., icon = ...)})
output$prop <- renderValueBox(...)
...
Creare dashboard con shinydashboard

Creare il dashboard: aggiungere controlli

Aggiunta di input: controlli per l’utente.

In body:

box(
    side = "right", ...,
    sliderInput(inputId = "range",
        label = "Seleziona l’intervallo di prezzo:",
        min = 0,
        max = 25000,
        value = c(0,25000))
        ))

Aggiorna server usando input$range[1] e input$range[2]

Creare dashboard con shinydashboard

Creare il dashboard: aggiungere grafici interattivi

Aggiunta di grafici interattivi con plotly.

In body:

plotlyOutput("plots", 
    height = 500, 
    width = 600)

In server:

output$plots <- renderPlotly({
      ...
  })
Creare dashboard con shinydashboard

Creare il dashboard: aggiungere un altro grafico

Aggiunta di un secondo grafico nella stessa pagina, accessibile da un menu a discesa.

In body:

selectInput(inputId = "select", 
    label = "Seleziona il gruppo:", 
    choices = c("Neighbourhood", 
            "Room Type"))

In server:

output$plots <- renderPlotly({
    if (input$select == ...){plot1}
    else if(input$select == ...){plot2}
  })
Creare dashboard con shinydashboard

Creare il dashboard: aggiungere descrizione e schede

Aggiunta di testo esplicativo per questo dashboard.

In body:

box(side = "right", ...,
    title = "Benvenuto a Londra!", 
    "...")

Aggiornamento in body:

tabBox(id = "tabset", ...,
    tabPanel("Grafici", ...),
    tabPanel("Tabella dati", ...)
Creare dashboard con shinydashboard

Creare il dashboard: aggiungere tabelle interattive

Aggiunta di tabelle interattive con le funzioni dataTable.

Possiamo usare le funzioni di shiny.

In body:

dataTableOutput("table")

In server:

output$table <- 
    renderDataTable(listings)
Creare dashboard con shinydashboard

Creare il dashboard: aggiungere una mappa interattiva

Aggiunta di una mappa leaflet nel dashboard.

In sidebar:

sidebarMenu(
    menuItem("Grafici", ...),
    menuItem("Mappa", ...))

In body:

leafletOutput("map",...)

In server:

output$map <- renderLeaflet(map)
Creare dashboard con shinydashboard

Ayo berlatih!

Creare dashboard con shinydashboard

Preparing Video For Download...