Bắt đầu ngayBắt đầu miễn phí

Thêm đầu ra bảng tương tác

Có nhiều gói htmlwidgets như DT, leaflet, plotly, v.v. cung cấp các đầu ra tương tác cao và có thể tích hợp dễ dàng vào ứng dụng Shiny theo một mẫu gần như giống nhau. Ví dụ, bạn có thể biến một bảng tĩnh trong ứng dụng Shiny thành bảng tương tác bằng gói DT:

  1. Tạo bảng tương tác bằng DT::datatable().
  2. Kết xuất bằng DT::renderDT().
  3. Hiển thị bằng DT::DTOutput().

Trong bài tập này, bạn sẽ cập nhật ứng dụng đã tạo trước đó, thay thế bảng tĩnh bằng bảng tương tác.

Bài tập này là một phần của khóa học

Xây dựng ứng dụng web với Shiny trong R

Xem khóa học

Hướng dẫn bài tập

  • Tạo đầu ra bảng tương tác bằng DT với 10 tên phổ biến nhất theo giới tính và năm. Bạn có thể dùng hàm top_10_names() để tạo một data frame để hiển thị và truyền nó vào DT::datatable().
  • Hiển thị bảng trong UI.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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)
Chỉnh sửa và Chạy Mã