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

时间:2017-12-08 08:34:21

标签: 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)
```

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

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

echo=True, include=FALSE此处不起作用:整个事物被隐藏(这是include=FALSE的正常行为。)

我可以使用哪些参数来隐藏打印件,但是显示我的代码?

6 个答案:

答案 0 :(得分:28)

@ J_F在评论中使用{r echo = T, results = 'hide'}进行了回答。

我想扩展他们的答案-您可以使用大量资源来确定块和输出显示的所有可能选项-我将印刷版保存在办公桌上!

您可以在RStudio网站上的Cheatsheets下找到它们(查找R Markdown备忘单 R Markdown参考指南),或在RStudio中导航到“帮助”标签,选择“备忘单”,然后在此处查找相同的文档。

最后设置默认块选项,如果您希望大多数块具有相同的行为,则可以在第一个块中运行类似以下代码的内容:

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

稍后,您可以像这样修改单个块的行为,这将替换 just 结果选项的默认值。

```{r analysis, results="markup"}
# code here
```

答案 1 :(得分:3)

为了它的价值。

```{r eval=FALSE}

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

答案 2 :(得分:2)

要隐藏警告,您还可以 {r, warning=FALSE}

答案 3 :(得分:1)

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

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

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

答案 4 :(得分:1)

要完全静音输出,这里对我有用

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


# Your code here
2 * 2
# etc etc


})})
```

上面使用的5种措施是

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

答案 5 :(得分:0)

对于静音library("name_of_library")代码,意味着仅显示代码,{r loadlib, echo=T, results='hide', message=F, warning=F}很棒。而且比library(package, warn.conflicts=F, quietly=T)