2011-11-04 8 views
18

Sto cercando di creare una GUI che includa alcuni input dell'utente (ad esempio sesso, età e razza come categorie selezionabili), quindi assegna un ID utente a ciascun input (che verrebbe visualizzato come output nella GUI). Sotto il cofano sarebbe un set di dati che la GUI sta creando con questo input dell'utente (in questo esempio, sarebbero 4 variabili: ID utente, sesso, età e razza).Quale pacchetto o codice R può essere utilizzato per creare GUI personalizzate?

Qualcuno ha creato una GUI come questa prima? Qualche suggerimento su pacchetto o codice R?

Grazie!

+0

Questa domanda è suscettibile di ottenere risposte soddisfacenti e complete su SO. – whuber

+0

E per quanto riguarda le GUI basate sul Web, ad es. esistono moduli Apache - o sei interessato a una GUI molto legata a R? – Iterator

+1

Se è per questo motivo che è possibile eseguire sondaggi basati sul Web, esistono alcuni buoni sistemi e alcuni buoni software R per analizzare l'output di tali sistemi di indagine standard. Fino a voi, sto solo chiedendo di chiarire le vostre esigenze. – Iterator

risposta

12

Ci sono molti modi per farlo. Ecco uno che usa il pacchetto aggiuntivo gWidgets. Dovrebbe funzionare con i backend RGtk2 o 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 
7

C'è una nuova soluzione costruita su RStudio. E 'stato presentato a useR2011, ecco un link al manifesto:

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

+0

Per utenti non rstudio, è possibile utilizzare gWidgetsManipolare esattamente allo stesso modo di Tal. Questo pacchetto non è su cran, ma r-forge, al momento: https://r-forge.r-project.org/R/?group_id=761 – jverzani

+0

@jverzani Qual è il destino di 'gWidgetsManipulate'? È stato portato su 'gWidgets2'? Penso che sarebbe bello avere un pacchetto simile a manipolazione non RStudio su CRAN .. – landroni

+0

C'è un esempio qui: https://github.com/jverzani/gWidgets2/blob/master/inst/examples/manipulate.R – jverzani

Problemi correlati