【问题标题】:datatable does not render in Shiny Dashboard数据表不会在闪亮的仪表板中呈现
【发布时间】:2015-09-16 17:23:25
【问题描述】:

数据表不会在 Shinydashboard 中呈现。它只是为盒子渲染了一条白色的细条。仅在 RStudio 中运行数据表函数会在 RStudio 查看器中呈现数据表。那么在闪亮的应用程序中呈现 DT 数据表的正确方法是什么?

## app.R ##
library(shiny)
library(shinydashboard)
library(htmlwidgets)
library(DT)
library(xtable)
source('../ts01/db.R')

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    fluidRow(
      box(tableOutput("table1"))
    )
  )
)

server <- function(input, output) {
  output$table1 <- DT::renderDataTable({
    datatable(amount_data)
  })  
}

shinyApp(ui, server)

【问题讨论】:

  • 由于您没有提供实际的表格内容,我最初的猜测是您将 source('../ts01/db.R') 更改为 source('../ts01/db.R' , local=TRUE)。
  • 也不确定是否有必要调用datatable(amount_data),我认为如果amount_data 是data.frame,它会在没有额外命令的情况下这样做。
  • 数据来自 source('../ts01/db.R')。此 R 脚本使用 RMySQl 将 SQL 表查询到有效数据帧中。
  • 在 RStudio 中,对 datatable(amount_data) 的调用会在 RStudio 查看器中呈现数据表。假设它是渲染数据所必需的。
  • renderDataTable() 必须与dataTableOutput() 配对,而不是tableOutput()

标签: r datatable shiny shinydashboard dt


【解决方案1】:

您应该尝试以下方法:

1) tableOutput

rm(list = ls())
library(shiny)
library(shinydashboard)
my_data <- head(mtcars)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    fluidRow(
      box(tableOutput("table1"))
    )
  )
)

server <- function(input, output) {
  output$table1 <- renderTable({
    my_data
  })  
}

shinyApp(ui, server)

2) dataTableOutput

rm(list = ls())
library(shiny)
library(DT)
library(shinydashboard)

my_data <- head(mtcars)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    fluidRow(
      box(DT::dataTableOutput("table1"))
    )
  )
)

server <- function(input, output) {
  output$table1 <- DT::renderDataTable({
    datatable(my_data)
  })  
}

shinyApp(ui, server)

【讨论】:

  • 如果您缩小浏览器窗口,您会注意到数据表不包含在 box 元素中。使用 datatable(my_data, extensions = 'Responsive')
【解决方案2】:

为了确保您使用正确的包来呈现您的数据表,请在您的 ui 中使用它:

DT::dataTableOutput('table1')

【讨论】:

    猜你喜欢
    • 2020-08-28
    • 2015-04-22
    • 2018-03-23
    • 1970-01-01
    • 2023-04-04
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    相关资源
    最近更新 更多