我有一个源文件(在knitr中),其中包含使用特定字体系列的图形。我想禁止显示警告消息
library(ggplot2)
ggplot(mtcars, aes(mpg, cyl, label = gear)) +
geom_text(family = "helvet")
我知道我可以在脚本
options(warn = -1)
中禁止显示所有警告消息,并且知道如何使用suppressWarnings
。我还可以在tryCatch
中包围特定的块。有没有办法只在整个文件中禁止以上的
grid.Call
警告? 最佳答案
用
withCallingHandlers({
<your code>
}, warning=function(w) {
if (<your warning>)
invokeRestart("muffleWarning")
})
例如,
x = 1
withCallingHandlers({
warning("oops")
warning("my oops ", x)
x
}, warning=function(w) {
if (startsWith(conditionMessage(w), "my oops"))
invokeRestart("muffleWarning")
})
产生输出
[1] 1
Warning message:
In withCallingHandlers({ : oops
>
局限性是可以将conditionMessage转换为另一种语言(尤其是从基本函数转换时),从而无法可靠地标识文本。
参见Selective suppressWarnings() that filters by regular expression。
关于r - 禁止发出任何特定警告消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38603668/