将所选值保存在 R 中的 gcheckboxgroup 中?
Saving selected values in gcheckboxgroup in R?
以下 R 脚本是使用 gWidgets 的简单 GUI。
我想知道为什么这段代码不保存用户在 gcheckboxgroup 中选择的值。
#### Clear the Global Environment:
rm(list=ls())
library(rattle)
library(RGtk2)
library(gWidgets)
library(tcltk)
library(lubridate)
w <- gwindow("checkbox example")
gp <- ggroup(container=w)
codes = c(
"1000 F",
"0100 Q",
"0010 M",
"0001 s")
cbg <- gcheckboxgroup(codes, cont=w)
selected_codes <- paste(svalue(cbg))
ff <- function(h,...)
selected_codes <- svalue(cbg)
obj_run <- gbutton("Run", container=w, handler = ff)
感谢 jverzani 的评论。
然而,这不是解决方案。
实际上,通过点击GUI中的运行按钮,我们得到selected_code是R内存。但是不能保存,因为它在function/handler里面。因此,我们需要使用以下代码将其保存(写入)到一个文件(例如 .txt)中:
rm(list=ls())
library(rattle)
library(RGtk2)
library(gWidgets)
library(tcltk)
library(lubridate)
w <- gwindow("checkbox example")
gp <- ggroup(container=w)
codes = c(
"1000 F",
"0100 Q",
"0010 M",
"0001 s")
cbg <- gcheckboxgroup(codes, cont=w)
obj_run <- gbutton("Run", container=w, handler = function (h ,...){
selected_codes <- paste0(svalue(cbg))
write(selected_codes, file = "selected_codes.txt",
ncolumns = if(is.character(selected_codes)) 1 else 1,
append = FALSE, sep = " ")
})
试试这个,比较省事:
library(gWidgets2)
w <- gwindow("checkbox example")
gp <- ggroup(container=w)
codes = c(
"1000 F",
"0100 Q",
"0010 M",
"0001 s")
g <- ggroup(cont=w, horizontal=FALSE)
cbg <- gcheckboxgroup(codes, cont=g)
selected_codes <- paste(svalue(cbg))
ff <- function(h,...) {
selected_codes <<- svalue(cbg)
}
obj_run <- gbutton("Run", container=g, handler = ff)
(您可能遇到过容器问题。)
以下 R 脚本是使用 gWidgets 的简单 GUI。
我想知道为什么这段代码不保存用户在 gcheckboxgroup 中选择的值。
#### Clear the Global Environment:
rm(list=ls())
library(rattle)
library(RGtk2)
library(gWidgets)
library(tcltk)
library(lubridate)
w <- gwindow("checkbox example")
gp <- ggroup(container=w)
codes = c(
"1000 F",
"0100 Q",
"0010 M",
"0001 s")
cbg <- gcheckboxgroup(codes, cont=w)
selected_codes <- paste(svalue(cbg))
ff <- function(h,...)
selected_codes <- svalue(cbg)
obj_run <- gbutton("Run", container=w, handler = ff)
感谢 jverzani 的评论。 然而,这不是解决方案。
实际上,通过点击GUI中的运行按钮,我们得到selected_code是R内存。但是不能保存,因为它在function/handler里面。因此,我们需要使用以下代码将其保存(写入)到一个文件(例如 .txt)中:
rm(list=ls())
library(rattle)
library(RGtk2)
library(gWidgets)
library(tcltk)
library(lubridate)
w <- gwindow("checkbox example")
gp <- ggroup(container=w)
codes = c(
"1000 F",
"0100 Q",
"0010 M",
"0001 s")
cbg <- gcheckboxgroup(codes, cont=w)
obj_run <- gbutton("Run", container=w, handler = function (h ,...){
selected_codes <- paste0(svalue(cbg))
write(selected_codes, file = "selected_codes.txt",
ncolumns = if(is.character(selected_codes)) 1 else 1,
append = FALSE, sep = " ")
})
试试这个,比较省事:
library(gWidgets2)
w <- gwindow("checkbox example")
gp <- ggroup(container=w)
codes = c(
"1000 F",
"0100 Q",
"0010 M",
"0001 s")
g <- ggroup(cont=w, horizontal=FALSE)
cbg <- gcheckboxgroup(codes, cont=g)
selected_codes <- paste(svalue(cbg))
ff <- function(h,...) {
selected_codes <<- svalue(cbg)
}
obj_run <- gbutton("Run", container=g, handler = ff)
(您可能遇到过容器问题。)