Alex Rivera | Logout

suppress messages displayed by "print" instead of "message" or "warning" in R

Asked 2012-01-10T01:00:16.330
33

Many R packages I work with involve functions that give all their messages and warnings through commands to print() calls rather than commands to message() or warning(). I'd like to be able to silence these functions progress indicators, etc, but the standard supressWarnings() or supressMessages doesn't do it. Is there a way I can just suppressPrint?

For example:

silly_developer_function <- function(x){
   print("Thanks for using my function!!")
   if(is(x, "numeric"))
     print("warning, x should be a character")
   x
}

I'd like to have a simple function suppressPrint() that I could wrap around a call to this function that would suppress the warning and useless messages (but still print the return value).

Edit
Report

1 Answer

0

Another hacky way is to override the default print function. It will affect some functionality, such as printing the body of functions, but objects with their own print methods still get returned as usual.

print <- function(...) {}

> silly_developer_function("a")
[1] "a"
> silly_developer_function(1)
[1] 1
answered 2012-01-10T12:51:26.683

Your Answer