假设我有一个这样的函数:
ff <- function(x) { cat(x, "\n") x^2}
字符串运行它:
y <- ff(5) # 5 y # [1] 25
型我的问题是如何禁用或隐藏从cat(x, "\n")打印的5,例如:
cat(x, "\n")
5
y <- ff(5) y # [1] 25
型
66bbxpm51#
您可以将capture.output与invisible一起使用
capture.output
invisible
> invisible(capture.output(y <- ff(2))) > y [1] 4
字符串或sink
sink
> sink("file") > y <- ff(2) > sink() > y [1] 4
3npbholx2#
这里有一个很好的函数,用于抑制Hadley威克姆的cat()的输出:
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
5n0oy7gb3#
你也应该看看purrr::quietly()。
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)
q0qdq0h24#
您也可以使用spsUtil library中的函数quiet:抑制cat、打印、消息和警告。
quiet
4条答案
按热度按时间66bbxpm51#
您可以将
capture.output
与invisible
一起使用字符串
或
sink
型
3npbholx2#
这里有一个很好的函数,用于抑制Hadley威克姆的
cat()
的输出:字符串
这样使用它:
型
来源:http://r.789695.n4.nabble.com/Suppressing-output-e-g-from-cat-td859876.html
5n0oy7gb3#
你也应该看看
purrr::quietly()
。字符串
创建于2020-09-10由reprex package(v0.3.0)
q0qdq0h24#
您也可以使用spsUtil library中的函数
quiet
:抑制cat、打印、消息和警告。