capture.output()
с invisible()
делает то, что вы хотите:
f <- function() {
cat("Hello")
return(TRUE)
}
f1 <- function() {
invisible(capture.output(f()))
}
x <- f1()
Это также работает:
f2 <- function() {
tmp <- tempfile()
sink(tmp)
on.exit(sink())
on.exit(file.remove(tmp), add = TRUE)
invisible(force(f()))
}
x <- f2()