在一个函数中有多个 pander()

Having multiple pander()s in a function

如何通过 pander() 在编织文档 "asis" 中创建多个输出?

当我在一个函数中多次调用 pander 时,HTML 输出中只显示最近的一次。这是一个例子:

tmp = function() {
  pander('A')
  pander('B')
  pander('C')
}
tmp()

在 knitted 文档中给出:C

我可以设置 panderOptions('knitr.auto.asis', FALSE) 或者我可以使用 cat() 以便将 pander() 输出写入标准输出。但随后它被格式化为代码,而不是文档的一部分。因为我需要 pander() 为我格式化一些表格,所以这没有帮助。

tmp 函数将只 return 最后一个对象——这就是为什么只打印 C 的原因。如果您想立即将每个对象写入 stdout 而不使用 auto-asis 便利选项,那么您必须像 一样禁用该选项使用 relate knitr 块选项,例如:

```{r results='asis'}
library(pander)
panderOptions('knitr.auto.asis', FALSE)
tmp = function() {
  pander('A')
  pander('B')
  pander('C')
}
tmp()
```

在相关 "Using pander with knitr" vignette 中查看更多示例。