可以使用哪些R包或代码来构建定制的GUI?

时间:2011-11-04 18:58:35

标签: r user-interface

我希望创建GUI,从用户那里获取一些输入(例如性别,年龄和种族作为可点击的类别),然后为每个输入分配一个用户ID(它将显示为输出中的输出) GUI)。在幕后将是GUI使用此用户输入创建的数据集(在此示例中,它将是4个变量:用户ID,性别,年龄和种族)。

有没有人之前创建过这样的GUI?任何R包或代码推荐?

谢谢!

3 个答案:

答案 0 :(得分:12)

有很多方法可以做到这一点。这是使用附加软件包gWidgets的一个。应该使用RGtk2或tcltk后端。

library(gWidgets)
items <- data.frame(id=numeric(0), gender=character(0), age=numeric(0), race=character(0), stringsAsFactors=FALSE)
genders <- c("Male", "Female")
race <- c("Black", "Hispanic", "Other")

w <- gwindow("Capn's GUI", visible=FALSE)
g <- ggroup(cont=w, horizontal=FALSE)
lyt <- glayout(cont=g)
lyt[1,1] <- "Gender:"
lyt[1,2] <- gradio(genders, cont=lyt)

lyt[2,1] <- "Age:"
lyt[2,2] <- gedit("40", coerce.with=as.numeric, cont=lyt)

lyt[3,1] <- "Race:"
lyt[3,2] <- gcombobox(race, selected=0L, cont=lyt)

lyt[4,2] <- gbutton("Add", cont=lyt, handler=function(h,...) {
  vals <- lapply(lyt[1:3, 2], svalue)
  id <- nrow(items) + 1                 # or roll your own
  items[id, ] <<- c(id, vals)
  tbl[] <- items
})
gseparator(cont=g)
tbl <- gtable(items, cont=g)


visible(w) <- TRUE

答案 1 :(得分:7)

在RStudio之上构建了一个新的解决方案。它在useR2011中展示,这里是海报的链接:

http://www.calvin.edu/~rpruim/talks/MosaicLightning/images/mosaicManipulate-poster.pdf

答案 2 :(得分:0)

我尝试的另一个不错的选择是使用JavaFx http://docs.oracle.com/javafx/2/overview/jfxpub-overview.htm构建GUI,并且在JavaFx GUI中,只需使用JRI,http://rforge.net/JRI/,这将使您能够在Java中使用R。