Permite vizualizarea tuturor continentelor cu opțiunea „All"
Înainte de a adăuga selectorul de continent, aplicația Shiny afișa date pentru toate continentele. Odată ce selectorul a fost adăugat, datele pot fi vizualizate pe continent. Dar ce se întâmplă dacă utilizatorul nu dorește să filtreze după un anumit continent și preferă să le vadă pe toate? Din păcate, adăugarea selectorului a eliminat această posibilitate.
Argumentul choices al funcției selectInput() poate fi modificat pentru a adăuga o nouă valoare în lista de continente – iar când această valoare este selectată, filtrarea după continent poate fi dezactivată.
Acest exercițiu face parte din cursul
Studii de caz: Construirea aplicațiilor web cu Shiny în R
Instrucțiuni pentru exercițiu
Adaugă o opțiune în selectorul de input pentru a selecta toate continentele ("All"). Când această opțiune este aleasă, nu se aplică nicio filtrare după continent. Concret:
- Adaugă valoarea "All" în lista de opțiuni furnizate selectorului din UI.
- În server, folosește o instrucțiune
ifpentru a verifica dacă continentul este setat pe "All". Dacă este ales "All", nu aplica nicio filtrare după continent (linia 20).
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)