我正在执行下面 DT github 页面上发布的一个非常小的 renderDataTable 示例
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)
    )
  }
)

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

Shiny 中的 renderDataTable 无法正确渲染输出-LMLPHP

我在卸载我的 DT 包并重新安装后尝试了这个
devtools::install_github('rstudio/DT')

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

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

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

最佳答案

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

如果用户在他们的常规 Shiny 应用程序中使用 renderdatatable 函数从 Shiny 切换到 flexdashboard 尝试运行使用 flexdashboard 函数的 renderdatatable 应用程序并切换回 Shiny ,则会发生这种情况。
flexdashboard 库 1) 不会通过 renderdatatable 函数呈现数据表,至少在今天它没有 2) 此外,flexdashboard 库破坏了数据表包中的一些功能,并且当用户尝试从flexdashboard ,用户可能会发现之前工作的 renderdatatable 函数可能无法准确呈现数据表。

根据 JJ Allaire 的说法,解决方案是将这两行添加到您 Shiny 的

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

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

关于Shiny 中的 renderDataTable 无法正确渲染输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37381206/

10-12 17:23