r - 为什么我不需要 results = "asis" 在 Rmarkdown 中逐字嵌入块输出?
问题描述
我曾经认为results = "asis"
需要 chunk 选项来在渲染的 Rmarkdown 文档中逐字包含任何块输出;否则输出将被格式化为控制台输出(例如使用前导##
)。
但是,即使没有该选项,几个功能knitr::kable()
似乎也可以正常工作,results = "asis"
而我手动创建的表在下面的示例中被格式化为控制台输出。
如何knitr
知道输出是逐字降价并且应该这样嵌入?
我的例子:
---
title: Title
output: github_document
---
```{r}
# works without results = "asis"
knitr::kable(mtcars)
```
```{r}
# without results = "asis": formatted as console output
table <- "|col1|col2|\n|-|-|\n|a|b|"
writeLines(table)
```
```{r, results='asis'}
# works only with results = "asis"
writeLines(table)
```
解决方案
results = 'asis'
告诉knitr
不要将代码块输出包装在代码块中。
在您的示例 2 中,输出被格式化为代码块(因为没有results = 'asis'
):
## |col1|col2|
## |-|-|
## |a|b|
示例 3 处理输出“原样”,这是格式化表格的有效降价。
R Markdown Cookbook中给出了一些额外的例子。
推荐阅读
- java - 如何在打包之前演示或定性测试 Java 类?
- firebase - 如何从flutter中从异步任务中检索到的数据中将图像加载到卡片中?
- cefsharp - 如何防止 CefSharp 崩溃杀死我在 Winforms 上的主要应用程序
- c# - 从作为方法参数的用途推断扩展方法的返回类型
- android - Flutter Run 命令不起作用 - 如何修复以下错误?
- mqtt - MQTT 主题中是否允许多个#?
- mysql - rds 上的 mariadb 在创建新过程时创建新用户@ip.ec2.host
- unity3d - 在 Unity3d 中同时使用多个游戏手柄的问题
- database - 使 Amazon-Redshift 查询计算平均值适应查询创建元素列表
- node.js - nodejs和mongodb中的国家/地区城市下拉列表