r - 在 RMarkdown 中隐藏打印语句

标签 r r-markdown

有没有办法在 RMarkdown 中隐藏打印语句?我编写了一个函数,它将算法的学习行为的进度打印到 R 控制台。下面是一个例子:

f <- function() {
  print("Some printing")
  return(1)
}

在 RMarkdown 我有
```{r, eval = TRUE, results = "show"}
res = f()
print(res)
```

这将“一些打印”和 1 添加到 RMarkdown 输出文件中。有没有办法抑制“某些打印”,但保留函数的输出(此处为 1)?对于警告、错误和消息,有一些选项,但我找不到打印语句的选项。

最佳答案

如果您使用 message在您的函数中而不是 print ,您可以抑制消息

```{r} 
f <- function() {
    message("Some printing")   # change this line
    return(1) 
}

res <- f()    
print(res)    # original prints both  
```
#> Some printing
#> [1] 1

要么明确使用 suppressMessages :
```{r} 
res <- suppressMessages(f())
print(res) 
```
#> [1] 1

或通过 message=FALSE块选项:
```{r, message=FALSE} 
res <- f()
print(res) 
```
#> [1] 1

专为此类用途而设计的消息。如果你真的想保留print ,你可以子集(这很尴尬),或者使用 capture.output捕获并存储消息,同时将结果存储在另一个变量中:
```{r}
f <- function() {
    print("Some printing")
    return(1)
}

trash <- capture.output(res <- f())   
print(res)
```
#> [1] 1

……不过还是挺尴尬的。

关于r - 在 RMarkdown 中隐藏打印语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46652404/

相关文章:

r - lm.fit(x, y, offset = offset, single.ok = single.ok, ...) : NA/NaN/Inf in 'y' , 中的错误尝试了所有可能的方法

r - 如何为海洋着色?

将方程渲染为图像,并使用 R Markdown 将其包含在 Word/PowerPoint 输出文档中

r - 如何将序列拆分为 k 个同质部分?

r - 更改 Rmarkdown 文档中的页面大小

html - 使用 Latex 和 HTML 渲染在 R Markdown 中标记矩阵的行和列

r - Phantomjs 错误阻止导出 gtsummary 表以在 RMarkdown 中使用

r - 向下填充带有 NA 的列的行(使用 R base 或 data.table)

R笔记本: opts_chunk has no effect

html - 使用 wkhtmltopdf 或 Markdown 将 data.frames 中的 html 保存为 pdf