我试图简单地设置带有R的GUI,其中包含一个按钮,用于将RData加载到工作区。
“守则”如下:
rm(list = ls()) # clean workspace
library(gWidgets)
library(gWidgetstcltk)
source("loadData.R")
options("guiToolkit"="tcltk")
win=gwindow("Analysis", visible = TRUE)
group = ggroup(horizontal = FALSE, container=win)
obj=gbutton("Load data", container = group, handler = loadData ("dataXML_saved.RData"))当我源的时候,我最终得到了想要的窗口。但是,当我再次按下"load data“按钮时,会得到以下错误消息:
在乐趣中出错(X[i],.):尝试应用非函数
加载数据数据的函数如下所示:
loadData = function(file){
load(file, .GlobalEnv)
}由于某种原因,gbutton的处理程序不接受load函数。这就是为什么我将它嵌入到loadData函数中。
知道有什么问题吗?
发布于 2018-04-06 12:00:52
尝试使用匿名函数。您似乎将一个表达式作为处理程序传递。
发布于 2018-04-09 11:32:46
我希望我正确地理解了你所说的话。所以,这就是我最终想要实现的,但是没有成功:
library(gWidgets)
library(gWidgetstcltk)
w <- gwindow("Button examples")
g <- ggroup(container = w)
addSpring(g) ## push to right of widget
gbutton("help", container = g)
addSpace(g, 20) ## some breathing room
gbutton("cancel", container = g)
gbutton("ok", container = g, handler = lapply("dataXML_saved.RData", function(x) load(x)))不过,我得到的错误消息和以前一样。
https://stackoverflow.com/questions/49666536
复制相似问题