開始使用免費開始

加入互動式表格輸出

有許多像 DTleafletplotlyhtmlwidgets 套件,能提供高度互動的輸出,而且幾乎用同一種模式就能輕鬆整合到 Shiny 應用中。舉例來說,你可以在 Shiny 應用中把靜態表格改成互動式表格,方法是使用 DT 套件:

  1. 使用 DT::datatable() 建立互動式表格。
  2. 使用 DT::renderDT() 進行渲染。
  3. 使用 DT::DTOutput() 顯示在介面上。

在這個練習中,你會更新先前建立的應用,把靜態表格改成互動式表格。

本練習屬於課程

使用 R 的 Shiny 建立網頁應用程式

檢視課程

練習說明

  • 使用 DT 建立一個互動式表格輸出,內容為依性別與年份的前 10 名常見名字。你可以使用 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)
編輯並執行程式碼