数据表不会在闪亮的仪表板中呈现
Posted
技术标签:
【中文标题】数据表不会在闪亮的仪表板中呈现【英文标题】: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()
【参考方案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')
【讨论】:
以上是关于数据表不会在闪亮的仪表板中呈现的主要内容,如果未能解决你的问题,请参考以下文章
如何在闪亮的仪表板侧边栏中的 menuItem 或固定框下创建 checkBoxGroup 项?
闪亮的仪表板 - 显示一个专用的“正在加载..”页面,直到数据的初始加载完成
包含 HTML 文件的闪亮应用程序在命令中运行时不会呈现图像