r - 使用钩子(Hook)在输出中格式化表格

标签 r markdown knitr

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

```{r results='asis'}
kable(head(x))
```

但是,我正在寻找一种方法来制作 kable代码是隐式的,因为我不想用它来混淆回显的代码。本质上,我想要这个:
```{r table=TRUE}
head(x)
```

…产生一个格式化的表格(而不是正常的 output='markdown' )输出。

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

我创建输出 Hook 的方法失败了,因为一旦数据到达 Hook ,它就已经格式化,不再是原始数据。即使指定 results='asis' ,钩子(Hook)将输出作为字符串而不是矩阵获取。这是我尝试过的:
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)
)

但就像我说的,这失败了,因为 x不是原始矩阵,而是字符串,results 的值无关紧要。我指定的选项。

最佳答案

现在可以设置df_print在 YAML header 中:

---
output:
  html_document:
    df_print: kable  
---

```{r}
head(iris)
```

关于r - 使用钩子(Hook)在输出中格式化表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19877286/

相关文章:

滚动平均值/标准差(随条件变化)

r - 使用 R 计算 2 个时间戳之间的时间差(以小时为单位)

javascript - Jquery 获取选择并在按下按钮时在其周围添加字符

r - Knitr:Markdown文档中LaTeX环境中的R代码

r - 如何将 .Rmd 文件转换为 Rstudio 的 .Rnw 文件?

r - 如何按组确定两列和两行的两个日期之间的天数差异?

r - 将长字符串转换为 data.frame

降低 flexdashboard/storyboard 中框架的高度

r-markdown - 如何 PDF 呈现具有动态内容的四开本书籍?

R Markdown、Knitr、Pandoc 和 Bookdown 之间的关系