【问题标题】:Getting R Shiny DataTables Minimal Example to Work in RMarkdown Doc让 R Shiny DataTables 最小示例在 RMarkdown Doc 中工作
【发布时间】:2015-08-20 20:58:42
【问题描述】:

R 的 DT(数据表)库提供了在 http://rstudio.github.io/DT/extensions.html 下面使用闪亮的最小示例(这对我有用)

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

但是,闪亮的 RMarkdown 文档中的以下代码不显示任何输出。这是为什么呢?

```{r}
library(rmarkdown); library(knitr); library(DT)

mydt = DT::renderDataTable(iris)
DT::dataTableOutput('mydt')
```

renderPrint(DT::dataTableOutput('mydt')) 也不会显示表格,尽管它会显示有关表格的一些 html 信息。

我不明白为什么用 DT::renderDataTable() 定义数据表并用 DT::dataTableOutput() 显示它可以在闪亮的应用程序中工作,而不是在闪亮的文档中。虽然我认为我误解了一些东西。

【问题讨论】:

  • 您好,请问您最后是否设法将数据表对象显示在 pdf 文档中?

标签: r datatables shiny r-markdown


【解决方案1】:

您只需要DT::renderDataTable(iris)

```{r}
DT::renderDataTable(iris)
```

我不明白你的意思 1) 将 DT::renderDataTable(iris) 分配给 R 对象 mydt,2) 打印 DT::dataTableOutput('mydt') 和 3) renderPrint(DT::dataTableOutput('mydt'))。这些在本文档中都没有意义。

【讨论】:

  • 您好,一辉,感谢您的回复。我知道我可以按照您的建议使用 DT::renderDataTable() 显示表格。但我希望将定义 DT 对象的代码与显示它的代码分开。这对我的 rmarkdown 文档中的 ggvis 对象来说很简单,但是我没有让它与 DT 表一起使用,因此这个问题。有没有办法在一行中定义一个 DT 对象,然后在交互式 rmarkdown 文档中以单独的代码行显示它?
  • @MaxPower 我不太明白使用两行代码的好处,但如果你真的想要,你当然可以使用x = datatable(iris) 然后renderDataTable(x)。问题是你打算用x 做什么?换句话说,为什么需要这个 DT 对象?
  • 你好,一辉。我有一个较长的 rmarkdown 文件,并且想要分离用于生成绘图对象并显示它们的代码。当 tbl 是基于用户输入返回数据集的反应函数时,我认为 datatable(tbl) 不起作用,这就是我尝试使用反应性 renderTable 函数定义它的原因。如果将响应式 DT 与显示分开定义并不简单,那也没关系。
  • 从github获取DT的开发版本。然后 tbl() 这是一个反应表将工作
猜你喜欢
  • 2020-08-15
  • 2015-09-10
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-08
  • 2017-08-09
  • 1970-01-01
相关资源
最近更新 更多