如何在RMarkdown中显示代码但隐藏输出?

Lau*_*ent 36 r knitr r-markdown

我希望我的html文件显示代码,但不是此块的输出:

```{r echo=True, include=FALSE}
fun <- function(b)
    {
    for(a in b)
        {print(a)
        return(a * a)}
    }
y <- fun(b)
```
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我需要打印来查看进度(实际上这是一个很长的功能).

但是在knitr文件中,我在另一个块中使用输出,所以我不想在这个中看到它(并且没有进展的概念,因为代码已经运行).

echo=True, include=FALSE在这里不起作用:整个事物是隐藏的(这是正常的行为include=FALSE).

我可以使用什么参数隐藏打印件,但显示我的代码?

Nov*_*ova 40

正如@ J_F在评论中回答,使用{r echo = T, results = 'hide'}.

我想扩展他们的答案 - 你可以访问很多资源来确定你的块和输出显示的所有可能选项 - 我在我的桌面上保留一份打印副本!

您可以在Cheatsheets下的RStudio网站上找到它们(查找R Markdown备忘单 R Markdown参考指南),或者在RStudio中,导航到"帮助"选项卡,选择"Cheatsheets",然后在那里查找相同的文档.

最后要设置默认的块选项,如果你想让大多数块具有相同的行为,你可以运行(在你的第一个块中)类似下面的代码:

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = T,
                      results = "hide")
```
Run Code Online (Sandbox Code Playgroud)

稍后,您可以修改个别块的行为就是这样,这将取代默认值只是结果选项.

```{r analysis, results="markup"}
# code here
```
Run Code Online (Sandbox Code Playgroud)


jmo*_*n12 38

results = 'hide'选项不会阻止打印其他消息。要隐藏它们,以下选项很有用:

  • {r, error=FALSE}
  • {r, warning=FALSE}
  • {r, message=FALSE}

在每种情况下,相应的警告、错误或消息都将打印到控制台。


Dry*_*bel 8

物有所值。

```{r eval=FALSE}
Run Code Online (Sandbox Code Playgroud)

该文档将默认显示代码,但是将阻止执行代码块,因此也不会显示任何结果。

  • 对我来说,我想显示代码而不是情节,所以我使用了 `echo=TRUE, eval=FALSE` (2认同)
  • 仅当您不必将此块的结果用于下一个块时,`eval=F` 才有用。 (2认同)

ali*_*ika 5

对于静音library("name_of_library")代码,意味着只是显示代码,{r loadlib, echo=T, results='hide', message=F, warning=F}很棒。恕我直言,这是比library(package, warn.conflicts=F, quietly=T)


use*_*745 5

为了完全静音输出,这对我有用

```{r error=FALSE, warning=FALSE, message=FALSE}
invisible({capture.output({


# Your code here
2 * 2
# etc etc


})})
```
Run Code Online (Sandbox Code Playgroud)

上述5项措施分别是

  1. error = FALSE
  2. warning = FALSE
  3. message = FALSE
  4. invisible()
  5. capture.output()