시작하기무료로 시작하기

기대 수명으로 필터링

Shiny의 진정한 장점은 입력과 출력을 결합할 때 나타납니다. 이전 연습 문제에서 만든 표는 정적이라서 바꿀 수 없지만, 탐색 목적이라면 사용자가 어떤 데이터 하위집합을 볼지 결정할 수 있으면 더 좋겠죠.

이를 위해서는 데이터를 필터링할 값을 사용자가 선택할 수 있는 입력을 추가하면 됩니다. 이렇게 하면 이전 연습 문제에서 만든 표를 동적으로 바꿀 수 있어요.

gapminder 데이터셋의 변수 중 하나는 lifeExp(기대 수명)입니다. 이번 과제에서는 Shiny 앱에 슬라이더 입력을 추가해 사용자가 최소·최대 기대 수명을 선택할 수 있게 하고, 표에는 해당 범위와 일치하는 데이터만 표시되도록 하세요.

이 연습은 강의의 일부입니다

사례 연구: R의 Shiny로 웹 애플리케이션 만들기

강의 보기

연습 안내

  • UI에 ID가 "life"인 슬라이더 입력을 추가하고, 최소값은 0, 최대값은 120, 기본 선택 범위는 30–50으로 설정하세요.
  • render 함수 내부에서 입력값을 사용해 gapminder 데이터를 서브셋팅하고, lifeExp가 최소값과 최대값 사이(경계값 포함)에 있는 레코드만 포함하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

ui <- fluidPage(
  h1("Gapminder"),
  # Add a slider for life expectancy filter 
  ___(inputId = ___, label = "Life expectancy",
      min = ___, max = ___,
      value = c(30, 50)),
  tableOutput("table")
)

server <- function(input, output) {
  output$table <- renderTable({
    data <- gapminder
    data <- subset(
      data,
      # Use the life expectancy input to filter the data
      lifeExp >= ___life[1] & lifeExp <= ___life[2]
    )
    data
  })
}

shinyApp(ui, server)
코드 편집 및 실행