R语言 如何隐藏或禁用功能内打印消息

8fq7wneg  于 2023-07-31  发布在  其他
关注(0)|答案(4)|浏览(98)

假设我有一个这样的函数:

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

字符串
运行它:

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


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

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

66bbxpm5

66bbxpm51#

您可以将capture.outputinvisible一起使用

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

字符串
sink

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

3npbholx

3npbholx2#

这里有一个很好的函数,用于抑制Hadley威克姆的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

5n0oy7gb

5n0oy7gb3#

你也应该看看purrr::quietly()

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

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

字符串
创建于2020-09-10由reprex package(v0.3.0)

q0qdq0h2

q0qdq0h24#

您也可以使用spsUtil library中的函数quiet:抑制cat、打印、消息和警告。

相关问题