使用钩子格式化输出中的表格

Kon*_*lph 10 markdown r knitr

使用knitr和R Markdown,我可以使用以下命令从矩阵生成表格化输出:

```{r results='asis'}
kable(head(x))
```
Run Code Online (Sandbox Code Playgroud)

但是,我正在寻找一种kable隐藏代码的方法,因为我不想用它来混淆回显的代码.基本上,我想要这个:

```{r table=TRUE}
head(x)
```
Run Code Online (Sandbox Code Playgroud)

...生成格式化表格(而不是正常output='markdown')输出.

我实际上认为这必须非常简单,因为这是一个非常明显的要求,但我无法通过文档或网络找到任何方法来实现这一点.

我创建输出挂钩的方法失败,因为一旦数据到达挂钩,它就已经格式化,不再是原始数据.即使在指定时results='asis',钩子也将输出作为字符串而不是矩阵获得.这是我尝试过的:

default_output_hook <- knit_hooks$get('output')
knit_hooks$set(output = function (x, options)
    if (! is.null(options$table))
        kable(x)
    else
        default_output_hook(x, options)
)
Run Code Online (Sandbox Code Playgroud)

但就像我说的那样,这是失败的,因为x它不是原始矩阵而是字符串,并且对于results我指定的选项,哪个值无关紧要.

Moo*_*per 2

我认为其他答案来自以下内容不起作用的时候,但现在我们可以这样做:

```{r results='asis', render=pander::pander}
head(x)
```
Run Code Online (Sandbox Code Playgroud)

或者为设置块中的所有块设置此值,例如:

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, render=pander::pander)
```
Run Code Online (Sandbox Code Playgroud)