Zacznij terazZacznij za darmo

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

Zobacz kurs

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 gapminder tak, by zawierał tylko rekordy z lifeExp mieszczą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)
Edytuj i uruchom kod