带有HTML输出的knitr和knit_print - 调度不起作用

时间:2017-05-01 21:56:59

标签: r shiny knitr r-markdown dt

我有一个闪亮的应用(radiant.data),它使用knitr生成可在应用内部查看的报告( R>报告)。因为输出显示在一个闪亮的应用程序中,我需要一个渲染函数,用于显示DT表格(即转换为shiny.render.function)。一切正常。

但是,我现在要使用custom print method来处理渲染,这样我就可以DT::datatable(mtcars)使用knitrknit_print.datatables生成shiny.render.function

下面是一些示例R-markdown,其中包含我正在使用的knit_print.datatables函数。 chunk1chunk2按预期显示shiny.render.functionchunk6没有显示任何内容。如果screenshot.force = TRUE我从chunk6获得截图,但这不是我想要的。

使用knitr::knit2html

处理的R-markdown示例
```{r chunk1}
knitr::opts_chunk$set(screenshot.force = FALSE)
DT::renderDataTable(DT::datatable(mtcars))
```

```{r chunk2}
knit_print.datatables <- function(object, ...) {
  DT::renderDataTable(object)
}
```

```{r chunk3}
knit_print <- knitr::knit_print
knit_print.datatables(DT::datatable(mtcars))
```

```{r chunk4}
getS3method("knit_print", "datatables")
```

```{r chunk5}
class(DT::datatable(mtcars))
```

```{r chunk6}
DT::datatable(mtcars)
```

我意识到上面的R-markdown虽然可以重现,如果你安装了knitrDT,看起来有点奇怪但是当我正确导出knit_print.datatables函数时,我得到相同的结果在我的应用程序中(参见下面的示例输出)。

enter image description here

0 个答案:

没有答案