Nach Lebenserwartung filtern
Der eigentliche Vorteil von Shiny zeigt sich, wenn Eingaben mit Ausgaben kombiniert werden. Die Tabelle aus der letzten Übung ist statisch – sie lässt sich nicht verändern –, aber für die Exploration wäre es besser, wenn Nutzer selbst entscheiden könnten, welchen Teil der Daten sie sehen möchten.
Das erreichst du, indem du eine Eingabe hinzufügst, mit der Nutzer einen Wert zum Filtern der Daten auswählen können. So wird die Tabelle aus der vorherigen Übung dynamisch.
Eine der Variablen im Datensatz gapminder ist lifeExp (Lebenserwartung). Deine Aufgabe ist es, der Shiny-App einen Schieberegler hinzuzufügen, mit dem Nutzer eine minimale und maximale Lebenserwartung wählen können. Die Tabelle soll dann nur Daten anzeigen, die in diesen Bereich fallen.
Diese Übung ist Teil des Kurses
Fallstudien: Webanwendungen mit Shiny in R erstellen
Anleitung zur Übung
- Füge im UI einen Schieberegler mit der ID "life", einem Minimalwert von 0, einem Maximalwert von 120 und einer Standardauswahl von 30–50 hinzu.
- Verwende in der Render-Funktion den Eingabewert, um den
gapminder-Datensatz so zu filtern, dass nur Einträge mitlifeExpzwischen Minimal- und Maximalwert (beide inklusive) enthalten sind.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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)