1

我编写了一个 R 函数,它从包中运行该lmer()函数。lme4有时该lmer()函数会返回一些警告,然后我在运行我的函数时会看到这些警告。

但是,当通过 R 运行我的函数时gWidget,警告不会出现在 R 控制台中。它们仅在我在 R 控制台中运行新命令后才会出现。运行小部件时我应该怎么做才能看到这些警告?

我不知道我的问题是否清楚。我的函数很长,有点复杂,并且需要一个文件作为参数。我不能在这里复制它并提供一个可重现的例子。

4

1 回答 1

1

由于某些原因,我认为 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

我收到警告。

于 2012-12-13T15:18:59.373 回答