有没有办法在RMarkdown中隐藏打印语句?我编写了一个函数,它将有关算法学习行为的进度打印到R控制台。这是一个例子:
f <- function() {
print("Some printing")
return(1)
}
在RMarkdown我有
```{r, eval = TRUE, results = "show"}
res = f()
print(res)
```
这会在RMarkdown输出文件中添加“Some printing”和1。有没有办法抑制“一些打印”,但保持功能的输出(这里1)?对于警告,错误和消息,有选项,但我找不到打印语句。
答案 0 :(得分:2)
如果您在函数中使用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
chunk选项:
```{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
......但那仍然很尴尬。