有没有办法在 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/