csgillespie csgillespie - 1 month ago 21
R Question

Disabling the cat command

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

Answer

On Linux, you can use a sink() call to /dev/null(or to a temporary file on another OS, see ?tempfile) :

sink(file="/dev/null")
f()
sink()