如何隐藏或禁用功能中打印的消息

时间:2015-12-10 17:51:37

标签: r printing

假设我有一个如下功能:

ff <- function(x) {
  cat(x, "\n")
  x^2}

按以下方式运行:

y <- ff(5)
# 5 
y
# [1] 25

我的问题是如何禁用或隐藏5打印的cat(x, "\n"),例如:

y <- ff(5)
y
# [1] 25

3 个答案:

答案 0 :(得分:36)

您可以将capture.outputinvisible

一起使用
> invisible(capture.output(y <- ff(2)))
> y
[1] 4

sink

> sink("file")
> y <- ff(2)
> sink()
> y
[1] 4

答案 1 :(得分:7)

这是抑制Hadley Wickham从cat()输出的好函数:

quiet <- function(x) { 
  sink(tempfile()) 
  on.exit(sink()) 
  invisible(force(x)) 
} 

像这样使用它:

y <- quiet(ff(5))

来源:http://r.789695.n4.nabble.com/Suppressing-output-e-g-from-cat-td859876.html

答案 2 :(得分:0)

您还应该签出purrr::quietly()

ff <- function(x) {
  cat(x, "\n")
  x^2
}

purrr::quietly(ff)(7)$result
#> [1] 49

reprex package(v0.3.0)于2020-09-10创建