시작하기무료로 시작하기

모든 대륙("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)
코드 편집 및 실행