我正在执行一个非常小的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构建一些shinyapps后,我开始注意到这个问题.在安装Flexdashboard软件包之前,一切正常,并且没有问题,安装Flexdashboard后我在使用renderDataTable函数时发现了数据表的这个问题
最佳答案 此问题是在使用renderdatatable函数时无法查看数据表的内容.
如果用户在常规闪亮的应用程序中使用renderdatatable函数从闪亮到flexdashboard尝试运行使用renderdatatable函数的flexdashboard应用程序并切换回闪亮,则会发生这种情况.
flexdashboard库1)不会通过renderdatatable函数渲染数据表,至少从今天开始它没有2)此外,flexdashboard库破坏了datatables包中的一些功能,当用户试图切换回常规Shiny时flexdashboard,用户可能会发现之前工作的renderdatatable函数可能无法准确呈现数据表.
根据JJ Allaire的说法,解决方案是在你的光泽中添加这两条线
options(DT.fillContainer = FALSE)
options(DT.autoHideNavigation = FALSE)
这将清理flexdashboard在datatable包中创建的所有钩子,并且数据表应该像以前一样在Shiny中正常呈现.