我有一个源文件(在knitr中),其中包含使用特定字体系列的图。我想取消警告信息
在grid.Call(L_textBounds,as.graphicsAnnot(x $ label),...:font中 在Windows字体数据库中找不到家庭
library(ggplot2)
ggplot(mtcars, aes(mpg, cyl, label = gear)) +
geom_text(family = "helvet")
我知道我可以删除脚本options(warn = -1)
中的所有警告消息,并且我知道如何使用suppressWarnings
。我也可以在tryCatch
。
有没有办法只在>>整个文件中抑制grid.Call
警告?
答案 0 :(得分:5)
使用
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。