簡體   English   中英

將所選值保存在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存儲器。 但是由於它在函數/處理程序內部,因此無法保存。 因此,我們需要使用以下代碼將其保存(寫入)到文件(例如.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)

(由於包裝容器,您可能遇到了問題。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM