IniziaInizia gratis

Filtra per aspettativa di vita

Il vero vantaggio di usare Shiny emerge quando gli input si combinano con gli output. La tabella creata nell’esercizio precedente è statica—non può essere modificata—ma per l’esplorazione sarebbe meglio permettere all’utente di decidere quale sottoinsieme di dati visualizzare.

Questo si può ottenere aggiungendo un input che permetta di selezionare un valore con cui filtrare i dati. In questo modo, la tabella creata nell’esercizio precedente può diventare dinamica.

Una delle variabili dell’insieme di dati gapminder è lifeExp (aspettativa di vita). Il tuo compito è aggiungere alla Shiny app uno slider che consenta all’utente di scegliere un’aspettativa di vita minima e massima; la tabella mostrerà solo i dati che rientrano in questi valori.

Questo esercizio fa parte del corso

Casi di studio: creare applicazioni web con Shiny in R

Visualizza il corso

Istruzioni dell'esercizio

  • Aggiungi all’UI uno slider con ID "life", valore minimo 0, valore massimo 120 e selezione predefinita 30-50.
  • All’interno della funzione di render, usa il valore di input per creare un sottoinsieme di gapminder che includa solo i record con lifeExp compreso tra i valori minimo e massimo (estremi inclusi).

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

ui <- fluidPage(
  h1("Gapminder"),
  # Add a slider for life expectancy filter 
  ___(inputId = ___, label = "Life expectancy",
      min = ___, max = ___,
      value = c(30, 50)),
  tableOutput("table")
)

server <- function(input, output) {
  output$table <- renderTable({
    data <- gapminder
    data <- subset(
      data,
      # Use the life expectancy input to filter the data
      lifeExp >= ___life[1] & lifeExp <= ___life[2]
    )
    data
  })
}

shinyApp(ui, server)
Modifica ed esegui il codice