R datatable不在仪表板中呈现

R datatable不在仪表板中呈现,r,datatable,shiny,shinydashboard,dt,R,Datatable,Shiny,Shinydashboard,Dt,datatable不会在Shinydashboard中呈现。它只是为长方体渲染一条白色的细条。仅在RStudio中运行datatable函数会在RStudio查看器中呈现datatable。那么,在闪亮的应用程序中呈现DT数据表的正确方法是什么 ## app.R ## library(shiny) library(shinydashboard) library(htmlwidgets) library(DT) library(xtable) source('../ts01/db.R') ui

datatable不会在Shinydashboard中呈现。它只是为长方体渲染一条白色的细条。仅在RStudio中运行datatable函数会在RStudio查看器中呈现datatable。那么,在闪亮的应用程序中呈现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)
##app.R##
图书馆(闪亮)
图书馆(shinydashboard)
库(htmlwidgets)
图书馆(DT)
图书馆(xtable)
源('../ts01/db.R')

ui您应该尝试以下操作:

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)
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)

要确保使用正确的包呈现datatable,请在ui中使用此包:

DT::dataTableOutput('table1')

由于您没有提供实际的表内容,我的初步猜测是您将source('../ts01/db.R')更改为source('../ts01/db.R',local=TRUE)。也不确定是否有必要调用
datatable(amount\u data)
,我认为如果amount\u data是
data.frame
,则无需额外的命令即可完成。数据来自source('../ts01/db.R')。此R脚本使用RMySQl将SQL表查询到有效的数据帧中。在RStudio中,对datatable(amount_data)的调用在RStudio查看器中呈现datatable。我们假设呈现数据需要它。
renderDataTable()
必须与
dataTableOutput()
配对,而不是
tableOutput()()
如果缩小浏览器窗口,您会注意到datatable不包含在box元素中。请使用datatable(my_data,extensions='Responsive')