Filtrowanie według oczekiwanej długości życia
Prawdziwa siła Shiny ujawnia się, gdy połączysz elementy wejściowe z wyjściowymi. Tabela utworzona w poprzednim ćwiczeniu jest statyczna – nie można jej modyfikować. Do eksploracji danych znacznie lepiej sprawdzi się rozwiązanie, w którym użytkownik sam decyduje, jaki podzbiór danych chce zobaczyć.
Można to osiągnąć, dodając element wejściowy umożliwiający filtrowanie danych według wybranej wartości. Dzięki temu tabela z poprzedniego ćwiczenia stanie się dynamiczna.
Jedną ze zmiennych w zbiorze danych gapminder jest lifeExp (oczekiwana długość życia). Twoim zadaniem jest dodanie do aplikacji Shiny suwaka, który pozwoli użytkownikowi wybrać minimalną i maksymalną oczekiwaną długość życia – tabela będzie wyświetlać tylko dane spełniające te kryteria.
To ćwiczenie jest częścią kursu
Studia przypadków: tworzenie aplikacji webowych w Shiny w R
Instrukcje do ćwiczenia
- Dodaj suwak do interfejsu użytkownika z identyfikatorem "life", wartością minimalną 0, maksymalną 120 i domyślnym zakresem 30–50.
- Wewnątrz funkcji renderującej użyj wartości wejściowej, aby przefiltrować zbiór danych
gapmindertak, by zawierał tylko rekordy zlifeExpmieszczącą się między wartością minimalną a maksymalną (obie wartości graniczne włącznie).
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)