我在gWidgets-R中有一个处理程序,其中加载了数据:
handler=function(h,...){
fname <- gfile(text="Choose a file",
type="open",
action="print",
handler =
function(h,...){
do.call(h$action, list(h$file))
}
)
load(fname)
.GlobalEnv$SETTINGS <- setwrite
svalue(status_bar) <- "Settings Loaded"
})
你可以看到为了加载的东西在函数结束后仍然可用,最后我放入GlobalEnv,否则当处理函数结束时,创建的“setwrite”对象会在处理程序结束时被销毁功能完成。然而,这不是我想要的结果,因为用户不需要对象,但我的包中的其他功能(未导出)确实需要使用此对象。我想我需要做的是在这些函数的范围内放置“setwrite”变量,就像package:pkgnamehere$SETTINGS <- setwrite
应该放在.GlobalEnv$SETTINGS <- setwrite
行的位置,但它告诉我无法找到对象包。我如何正确地执行此操作,以便将处理程序创建的对象放入包非范围函数/其他gWidgets事件处理程序的范围内。 (非导出,因为想法是用户应该只能使用GUI)。感谢。
答案 0 :(得分:-1)
您还可以在包的环境中存储选项。
pkgnamehere:::.options
参见例如:
library(foreach)
foreach:::.foreachGlobals
<environment: 0x000000001448fae8>