使用 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/