Suppress output of a function
I'm looking to suppress the output of one command (in this case, the apply
function).
Is it possible to do this without using sink()
? I've found the described solution below, but would like to do this in one line if possible.
How to suppress output
Solution 1:
It isn't clear why you want to do this without sink
, but you can wrap any commands in the invisible()
function and it will suppress the output. For instance:
1:10 # prints output
invisible(1:10) # hides it
Otherwise, you can always combine things into one line with a semicolon and parentheses:
{ sink("/dev/null"); ....; sink(); }
Solution 2:
Use the capture.output()
function. It works very much like a one-off sink()
and unlike invisible()
, it can suppress more than just print messages. Set the file argument to /dev/null
on UNIX or NUL
on windows. For example, considering Dirk's note:
> invisible(cat("Hi\n"))
Hi
> capture.output( cat("Hi\n"), file='NUL')
>