Consenti la visualizzazione di "All" i continenti
Prima di aggiungere il selettore del continente, l'app Shiny mostrava i dati per tutti i continenti. Ora che il selettore è stato aggiunto, i dati possono essere visualizzati per singolo continente. Ma cosa succede se l'utente decide che in realtà non vuole filtrare per un continente specifico e preferisce vederli tutti? Purtroppo, l'aggiunta del selettore ha rimosso questa possibilità.
L'argomento choices della funzione selectInput() può essere modificato per aggiungere un altro valore all'elenco dei continenti e, quando questo valore viene scelto, il filtro per continente può essere disattivato.
Questo esercizio fa parte del corso
Casi di studio: creare applicazioni web con Shiny in R
Istruzioni dell'esercizio
Aggiungi un'opzione nel selettore per scegliere "All" i continenti. Quando è selezionata questa opzione, non applicare alcun filtro per continente. In particolare:
- Aggiungi un valore "All" all'elenco di opzioni fornite al selettore nell'UI.
- Nel server, usa un'istruzione if per verificare se il continente è impostato su "All". Se è stato scelto "All", non applicare alcun filtro sui continenti (riga 20).
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
ui <- fluidPage(
h1("Gapminder"),
sliderInput(inputId = "life", label = "Life expectancy",
min = 0, max = 120,
value = c(30, 50)),
# Add an "All" value to the continent list
selectInput("continent", "Continent",
choices = c(___, levels(gapminder$continent))),
tableOutput("table")
)
server <- function(input, output) {
output$table <- renderTable({
data <- gapminder
data <- subset(
data,
lifeExp >= input$life[1] & lifeExp <= input$life[2]
)
# Don't subset the data if "All" continent are chosen
if (___) {
data <- subset(
data,
continent == input$continent
)
}
data
})
}
shinyApp(ui, server)