모든 대륙("All")을 볼 수 있도록 허용하기
대륙 선택기를 추가하기 전에는 Shiny 앱이 모든 대륙의 데이터를 보여줬어요. 대륙 선택기를 추가한 뒤에는 대륙별로 데이터를 볼 수 있게 되었죠. 그런데 사용자가 특정 대륙으로 필터링하지 않고, 모든 대륙을 보고 싶다면 어떻게 해야 할까요? 아쉽게도 대륙 선택기를 추가하면서 그 기능이 사라졌어요.
selectInput() 함수의 choices 인자를 수정해 대륙 목록에 값을 하나 더 추가할 수 있어요. 이 값을 선택하면 대륙 필터링을 끌 수 있도록 하면 됩니다.
이 연습은 강의의 일부입니다
사례 연구: R의 Shiny로 웹 애플리케이션 만들기
연습 안내
선택 입력(select input)에 모든 대륙을 의미하는 "All" 옵션을 추가하세요. 이 옵션이 선택되면 대륙 필터링을 수행하지 않도록 하세요. 구체적으로:
- UI에서 select input에 제공하는 옵션 목록에 "All" 값을 추가하세요.
- 서버에서는 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)