On 04/18/2013 05:57 AM, Duncan Murdoch wrote:
On 13-04-18 7:31 AM, Felix Schönbrodt wrote:
Hello,
is there a convenient way to suppress only *specific* warnings? (I know about
?suppressWarnings)
I depend on another package, from which I want to suppress only some warnings,
but not others.
This is difficult in most cases, because most packages don't give enough
information to distinguish among their warnings. You could probably do it based
maybe useful to make the point that it isn't hard to for the package you depend
on to signal different types of warnings
w = simpleWarning("curves ahead")
class(w) = c("curves", class(w))
warning(w)
more below...
on the message as follows, but the test won't work if someone is running in a
locale where the warning message has been translated to a different language:
x <- 1:10
x + 1:3 # gives the warning:
In x + 1:3 :
longer object length is not a multiple of shorter object length
To suppress just this one, try this:
withCallingHandlers(x + 1:3,
warning=function(w) {
if (grepl("longer object length", w$message))
invokeRestart("muffleWarning")
} )
...which are then caught as
withCallingHandlers({
warning(w) # 'curves'; caught
warning("another warning")
}, curves=function(w) invokeRestart("muffleWarning"))
The tricky part is to come up with an appropriate scheme for classifying
warnings.
Martin Morgan
Duncan Murdoch
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
--
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109
Location: Arnold Building M1 B861
Phone: (206) 667-2793
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel