Suppose I have the following function:
## Just an example
f = function() {
for(i in 1:10000)
cat(i)
return(1)
}
When I call f() is there a way to stop cat printing to the screen (without altering the function in anyway)?
Reason behind this question
My students upload their R files. I then run the scripts and check to see if they are correct. Every so often, a student leaves in the cat command. This is especially irritating when it’s in a long for loop
On Linux, you can use a
sink()call to/dev/null(or to a temporary file on another OS, see?tempfile) :