НачатьНачать бесплатно

Возможность просмотра данных по всем континентам

До добавления селектора континентов приложение Shiny отображало данные по всем континентам. После его появления стало возможным фильтровать данные по отдельным континентам. Но что если пользователь не хочет применять такой фильтр и предпочитает видеть все континенты сразу? К сожалению, добавление селектора лишило его такой возможности.

Аргумент choices функции selectInput() можно изменить, добавив в список континентов дополнительное значение. Когда пользователь выбирает его, фильтрация по континенту отключается.

Это упражнение является частью курса

Примеры использования: создание веб-приложений с Shiny в R

Посмотреть курс

Инструкции к упражнению

Добавьте в селектор опцию выбора всех континентов — "All". При её выборе фильтрация по континенту не должна применяться. В частности:

  • Добавьте значение "All" в список опций, передаваемых в элемент выбора в UI.
  • В серверной части используйте оператор if, чтобы проверить, выбрано ли значение "All". Если да — не выполняйте никакой фильтрации по континентам (строка 20).

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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)
Редактировать и запускать код