ПочатиПочніть безкоштовно

Дозвольте переглядати всі континенти ("All")

До додавання селектора континентів застосунок Shiny показував дані для всіх континентів. Тепер, коли селектор континентів додано, дані можна переглядати для кожного континенту окремо. Але що, якщо користувач вирішить, що не хоче фільтрувати за певним континентом і віддає перевагу бачити всі? На жаль, додавання селектора континентів прибрало таку можливість.

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

Ця вправа є частиною курсу

Case Studies: створення вебзастосунків із Shiny в R

Переглянути курс

Інструкції до вправи

Додайте в селекторі опцію для вибору всіх континентів — "All". Коли обрано цю опцію, не виконуйте жодної фільтрації за континентом. Зокрема:

  • Додайте значення "All" до списку опцій, які передаються в селектор у UI.
  • На сервері використайте оператор if, щоб перевірити, чи континент встановлено на "All". Якщо обрано "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)
Редагувати та запускати код