Tillåt visning av "All" kontinenter
Innan kontinentväljaren lades till visade Shiny-appen data för alla kontinenter. Nu när väljaren är på plats kan data visas per kontinent. Men vad händer om användaren faktiskt inte vill filtrera på en specifik kontinent och hellre vill se alla? Tyvärr försvann den möjligheten när kontinentväljaren lades till.
Argumentet choices i funktionen selectInput() kan ändras för att lägga till ytterligare ett värde i kontinentlistan. När det värdet väljs kan kontinentfiltreringen stängas av.
Den här övningen är en del av kursen
Fallstudier: Bygg webbapplikationer med Shiny i R
Övningsinstruktioner
Lägg till ett alternativ i select-inmatningen för att välja "All" kontinenter. När det alternativet är valt ska ingen kontinentfiltrering utföras. Gör så här:
- Lägg till värdet "All" i listan med alternativ som skickas till select-inmatningen i UI:t.
- I servern använder du en if-sats för att kontrollera om kontinenten är inställd på "All". Om "All" är valt ska ingen filtrering på kontinenter utföras (rad 20).
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)