Дозвольте переглядати всі континенти ("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)