시작하기무료로 시작하기

대화형 테이블 결과물 추가하기

DT, leaflet, plotly 등과 같은 여러 htmlwidgets 패키지는 고도로 대화형인 결과물을 제공하며, 거의 동일한 패턴으로 Shiny 앱에 쉽게 통합할 수 있어요. 예를 들어, Shiny 앱의 정적 테이블을 DT 패키지를 사용해 대화형 테이블로 바꿀 수 있습니다:

  1. DT::datatable()로 대화형 테이블을 만듭니다.
  2. DT::renderDT()로 렌더링합니다.
  3. DT::DTOutput()로 화면에 표시합니다.

이 연습에서는 이전에 만든 앱을 업데이트하여 정적 테이블을 대화형 테이블로 교체해 보겠습니다.

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

R로 Shiny 웹 애플리케이션 만들기

강의 보기

연습 안내

  • 성별과 연도별 상위 10개 인기 이름으로 DT를 사용한 대화형 테이블 결과물을 만드세요. 표시할 데이터 프레임은 top_10_names() 함수로 생성해 DT::datatable()에 전달할 수 있습니다.
  • UI에 테이블을 표시하세요.

실습형 인터랙티브 연습

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

ui <- fluidPage(
  titlePanel("What's in a Name?"),
  # Add select input named "sex" to choose between "M" and "F"
  selectInput('sex', 'Select Sex', choices = c("M", "F")),
  # Add slider input named "year" to select year between 1900 and 2010
  sliderInput('year', 'Select Year', min = 1900, max = 2010, value = 1900),
  # MODIFY CODE BELOW: Add a DT output named "table_top_10_names"
  tableOutput('table_top_10_names')
)

server <- function(input, output, session){
  top_10_names <- function(){
    babynames %>% 
      filter(sex == input$sex) %>% 
      filter(year == input$year) %>% 
      slice_max(prop, n = 10)
  }
  # MODIFY CODE BELOW: Render a DT output named "table_top_10_names"
  output$table_top_10_names <- renderTable({
    top_10_names()
  })
}

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