我期待創建一個GUI,它接受來自用戶的一些輸入(例如性別,年齡和種族作爲可點擊的類別),然後爲每個輸入分配一個用戶ID(它將在GUI中顯示爲輸出)。底層是一個數據集,GUI是用這個用戶輸入創建的(在這個例子中,它將是4個變量:用戶ID,性別,年齡和種族)。什麼R包或代碼可以用來構建定製的GUI?
有沒有人創建過這樣的圖形用戶界面?任何R包或代碼建議?
謝謝!
我期待創建一個GUI,它接受來自用戶的一些輸入(例如性別,年齡和種族作爲可點擊的類別),然後爲每個輸入分配一個用戶ID(它將在GUI中顯示爲輸出)。底層是一個數據集,GUI是用這個用戶輸入創建的(在這個例子中,它將是4個變量:用戶ID,性別,年齡和種族)。什麼R包或代碼可以用來構建定製的GUI?
有沒有人創建過這樣的圖形用戶界面?任何R包或代碼建議?
謝謝!
有很多方法可以做到這一點。這是一個使用附加軟件包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
在RStudio上建立了一個新的解決方案。它在useR2011介紹,這裏是一個鏈接到海報:
http://www.calvin.edu/~rpruim/talks/MosaicLightning/images/mosaicManipulate-poster.pdf
對於非rstudio用戶,您可以使用gWidgetsManipulate與Tal指向的完全相同的方式。這個軟件包目前還沒有啓動,但r-forge,目前:https://r-forge.r-project.org/R/?group_id=761 – jverzani
@jverzani'gWidgetsManipulate'的命運是什麼?被移植到「gWidgets2」嗎?我認爲在CRAN上有一個非RStudio類似操作的程序包會很不錯.. – landroni
這裏有一個例子:https://github.com/jverzani/gWidgets2/blob/master/inst/examples/manipulate.R – jverzani
另一個不錯的選擇我想是建立使用JavaFX,http://docs.oracle.com/javafx/2/overview/jfxpub-overview.htm一個圖形用戶界面,並在JavaFX的圖形用戶界面,只需用JRI,http://rforge.net/JRI/,這將使您能夠在Java中使用R.
這個問題很可能會在SO上得到很好的答案。 – whuber
基於網頁的GUI如何?有沒有Apache模塊 - 或者你對GUI非常感興趣? – Iterator
對於這個問題,如果你喜歡網絡調查,那裏有一些很好的系統,還有一些很好的R軟件來分析這些標準調查系統的輸出。在你看來,我只是要求澄清你的需求。 – Iterator