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