【问题标题】:How to show formatted R output with results='asis' in rmarkdown如何在 rmarkdown 中使用 results='asis' 显示格式化的 R 输出
【发布时间】:2019-03-08 23:00:22
【问题描述】:

当使用 results = 'asis' 时,有没有办法在 rmarkdown/knitr 中显示格式化程序 R 输出?

一个例子是下面的函数:

myfun <- function() {
  cat("hello!\n")
  cat(c("one" = 1, "two" = 2))
}

然后,该块将在新行上打印第二个cat

```{r}
myfun()
```

但这会忽略来自myfun的格式:

```{r, results = "asis"}
myfun()
```

有没有办法在保持results='asis' 的同时保持myfun 的输出格式符合预期?

【问题讨论】:

  • 那么您只是想从输出中删除“##”吗?
  • 不,我希望函数中的换行符显示在 html 输出中
  • “显示”是指您确实想看到“\n”而不是换行?
  • 对不起,我的意思是:我想获得“你好!”和“1 2”在不同的行。以类似于 R 控制台中出现的方式
  • 没有“asis”的结果是什么,但您只是不希望它也绘制“##”?你是渲染成html吗? pdf?

标签: r r-markdown knitr


【解决方案1】:

如果您愿意在行尾添加两个或更多空格,可以使用 knitr chunk 选项results = "asis"。也就是说,你需要写"hello \n"而不是"hello\n"来触发换行符。

示例 R Markdown 代码:

---
output: html_document
---

```{r}
myfun <- function() {
  cat("hello!  \n")
  cat(c("one" = 1, "two" = 2))
}
```

```{r results = "asis"}
myfun()
```

给予

为什么是空格?这是因为行尾的两个空格用于表示markdown中的硬换行符。例如,这句话取自 Pandoc's Markdown(这是 R Markdown 使用的默认降价风格):

段落
段落是一行或多行文本,后跟一个或多个空行。换行符被视为空格,因此您可以根据需要重新排列段落。如果您需要硬换行,请在行尾放置两个或更多空格。

【讨论】:

    猜你喜欢
    • 2021-05-29
    • 2021-12-20
    • 2019-10-26
    • 1970-01-01
    • 2017-04-03
    • 2021-08-08
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多