我已经编写了一个R函数,它运行lme4包中的lmer()函数。有时lmer()函数会返回一些警告,然后我在运行函数时会看到这些警告。
但是,当通过R gWidget运行我的函数时,警告不会出现在R控制台中。只有当我在R控制台中运行新命令后,它们才会出现。在运行小部件时,我应该怎么做才能看到这些警告?
我不知道我的问题是否清楚。我的函数非常长,有点复杂,并且接受一个文件作为参数。我不能在这里复制它并提供一个可重现的示例。
发布于 2012-12-13 23:18:59
出于某些原因,我认为gWidgets会重定向输出。一种解决方案是更改options warn
我创建了一小段代码来生成bug。我确认我也有同样的行为。
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但是当我运行这个小工具,并单击按钮时,我没有收到警告。
当我更改选项时发出警告
options(warn=1) # print warnings as they occur我得到了警告。
https://stackoverflow.com/questions/13860029
复制相似问题