2012-12-13 49 views
1

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

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

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

回答

1

由于某些原因,我认为gWidgets重定向输出。 一种解决方案是更改optionswarn

我创建了一个小代码来生成错误。我确认我有同样的行为。

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 

我得到的警告。