我编写了一个 R 函数,它从包中运行该lmer()
函数。lme4
有时该lmer()
函数会返回一些警告,然后我在运行我的函数时会看到这些警告。
但是,当通过 R 运行我的函数时gWidget
,警告不会出现在 R 控制台中。它们仅在我在 R 控制台中运行新命令后才会出现。运行小部件时我应该怎么做才能看到这些警告?
我不知道我的问题是否清楚。我的函数很长,有点复杂,并且需要一个文件作为参数。我不能在这里复制它并提供一个可重现的例子。
由于某些原因,我认为 gWidgets 会重定向输出。一种解决方案是更改options
warn
我创建了一个小代码来生成错误。我确认我有同样的行为。
library(gWidgets)
options("guiToolkit"="RGtk2")
warn.handler <- function(h,...) { warnings('dummy warning')}
win <- gwindow("Hello World, ad nauseum", visible=TRUE)
group <- ggroup(horizontal = FALSE, container=win)
obj <- gbutton("Hello...",container=group,handler = warn.handler)
这里我的 warn.handler 函数生成一个虚拟警告:
warn.handler()
Warning message:
In warn.handler() : dummy warning
但是当我运行 gwidget 并单击按钮时,我没有警告。
当我更改选项时警告
options(warn=1) # print warnings as they occur
我收到警告。