2012-12-13 47 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 

我得到的警告。