在RMarkdown中隐藏打印语句

在RMarkdown中隐藏打印语句,r,r-markdown,R,R Markdown,有没有办法在RMarkdown中隐藏打印语句?我编写了一个函数,它将算法学习行为的进度打印到R控制台。以下是一个例子: f <- function() { print("Some printing") return(1) } 这会将“一些打印”和1添加到RMarkdown输出文件中。有没有办法抑制“某些打印”,但保持函数的输出(此处为1)?对于警告、错误和消息,有一些选项,但对于打印语句,我找不到任何选项。如果在函数中使用message,而不是print,则可以抑制消息 ```{

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

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

这会将“一些打印”和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
或者通过
message=FALSE
chunk选项:

```{r, message=FALSE} 
res <- f()
print(res) 
```
#> [1] 1

…但这仍然很尴尬。

可能会有帮助。使用
消息
可能是最简单的解决方案。虽然我个人不喜欢在R控制台上打印的红色。看起来像是一个错误…是的,一些更好的突出显示会很好,但除非你在你的编织结果上设置了类似的突出显示,否则它很可能只是灰色的。但是,您始终可以看到消息和错误之间的区别,因为错误前面总是有“错误”,就像
print
的结果前面有索引一样,例如
print('foo');猫('foo\n');消息('foo');停止('foo')
。我确信可以编写一个自定义钩子来区分打印,但这不是一件容易的事情。
```{r} 
res <- suppressMessages(f())
print(res) 
```
#> [1] 1
```{r, message=FALSE} 
res <- f()
print(res) 
```
#> [1] 1
```{r}
f <- function() {
    print("Some printing")
    return(1)
}

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