如何在rmarkdown中显示结果为'asis'的格式化R输出

时间:2018-10-03 16:27:23

标签: r r-markdown knitr

当使用result ='asis'时,有没有办法在rmarkdown / knitr中显示格式器R的输出?

示例为以下功能:

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

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

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

nice printing

但这将忽略myfun中的格式:

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

non-formatted printing

是否有一种方法可以使results='asis'保持原样,同时保持myfun的输出格式?

1 个答案:

答案 0 :(得分:6)

如果愿意在行尾添加两个或多个空格,可以使用编织块选项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()
```

给予

output on two lines

为什么空白?这是因为在一行的末尾使用两个空格来表示Markdown中的强行中断。例如,此引用来自Pandoc's Markdown(这是R Markdown使用的默认markdown风格):

  

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