【问题标题】:renderDataTable in Shiny not rendering output correctlyShiny中的renderDataTable无法正确呈现输出
【发布时间】:2016-09-19 18:09:18
【问题描述】:

我正在执行一个非常小的renderDataTable 示例,该示例发布在下面的 DT github 页面上 http://rstudio.github.io/DT/shiny.html

library(shiny)
shinyApp(
  ui = fluidPage(DT::dataTableOutput('tbl')),
  server = function(input, output) {
    output$tbl = DT::renderDataTable(
      iris, options = list(lengthChange = FALSE)
    )
  }
)

但是,执行此代码后我看到的输出是垃圾,列名列在一行中,没有空格。

我在卸载我的 DT 包并重新安装后尝试了这个

devtools::install_github('rstudio/DT')

什么都没有改变,结果还是一样。我不明白为什么 DT::renderDataTable() 不起作用。任何建议都非常感谢。?

-------------更新----

在我开始使用 Flexdashboard 构建一些闪亮的应用程序后,我开始注意到这个问题。在安装 Flexdashboard 包之前,一切都照常工作并且没有问题,在安装 Flexdashboard 之后,我在使用 renderDataTable 函数时注意到数据表存在这个问题

【问题讨论】:

  • 我无法重现您的输出。您是否在某处加载了样式表?
  • 您是否在 RStudio 查看器或 Web 浏览器中看到了此结果?
  • htmlwidgets 是最新的吗?
  • renderDataTable 不会在输出上调用datatable,您需要它是:output$tbl = DT::renderDataTable( {datatable(iris)}, options = list(lengthChange = FALSE) )
  • @Benjamin,我没有使用任何样式表,只是 github/DT 网站上的相同示例

标签: r datatables shiny dt


【解决方案1】:

这个问题是关于在使用renderdatatable 函数时无法看到数据表的内容。

如果在常规闪亮应用中使用renderdatatable 函数的用户从闪亮切换到flexdashboard 尝试运行使用renderdatatable 函数的flexdashboard 应用并切换回闪亮,则会发生这种情况。

flexdashboard 库 1) 不会通过 renderdatatable 函数呈现数据表,至少在今天没有 2) 此外,flexdashboard 库会破坏数据表包中的一些功能,并且当用户尝试从 flexdashboard 切换回常规 Shiny,用户可能会发现之前工作的 renderdatatable 函数可能无法准确呈现数据表。

根据 JJ Allaire 的说法,解决方案是在您的闪亮中添加这两行

 options(DT.fillContainer = FALSE) 
 options(DT.autoHideNavigation = FALSE) 

这将清除 flexdashboarddatatable 包中创建的所有钩子,并且数据表应该像以前一样在 Shiny 中正常呈现。

【讨论】:

    猜你喜欢
    • 2014-03-19
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 2019-12-21
    相关资源
    最近更新 更多