gpt4 book ai didi

r - 禁止发出任何特定警告消息

转载 作者:行者123 更新时间:2023-12-02 08:56:07 25 4
gpt4 key购买 nike

我有一个源文件(以knitr格式),其中包含使用特定字体系列的绘图。我想抑制警告消息

In grid.Call(L_textBounds, as.graphicsAnnot(x$label), ... : font family not found in Windows font database

library(ggplot2)

ggplot(mtcars, aes(mpg, cyl, label = gear)) +
geom_text(family = "helvet")

我知道我可以抑制脚本中的所有警告消息options(warn = -1),并且我知道如何使用suppressWarnings。我还可以在 tryCatch 中包围特定 block 。

有没有办法只抑制整个文件上方的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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com