Erlaube die Ansicht aller Kontinente ("All")
Bevor der Kontinent-Auswahlschalter hinzugefügt wurde, zeigte die Shiny-App Daten für alle Kontinente. Jetzt, mit dem Auswahlschalter, können die Daten pro Kontinent angezeigt werden. Aber was, wenn Nutzerinnen und Nutzer doch nicht nach einem bestimmten Kontinent filtern wollen und lieber alle sehen? Leider hat das Hinzufügen des Auswahlschalters diese Möglichkeit entfernt.
Das Argument choices der Funktion selectInput() kann angepasst werden, um einen weiteren Wert zur Kontinentliste hinzuzufügen. Wenn dieser Wert gewählt wird, kann die Kontinentfilterung deaktiviert werden.
Diese Übung ist Teil des Kurses
Fallstudien: Webanwendungen mit Shiny in R erstellen
Anleitung zur Übung
Füge in der Auswahl einen Eintrag hinzu, um "All" Kontinente zu wählen. Wenn diese Option ausgewählt ist, nimm keine Kontinent-Filterung vor. Konkret:
- Füge der Liste der Optionen, die im UI an das Auswahlfeld übergeben werden, den Wert "All" hinzu.
- Verwende im Server eine if-Abfrage, um zu prüfen, ob der Kontinent auf "All" gesetzt ist. Wenn "All" gewählt ist, führe keine Filterung nach Kontinenten durch (Zeile 20).
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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)