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
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
gapminderche includa solo i record conlifeExpcompreso 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)