2011-11-04 30 views
18

Tôi đang tìm cách tạo GUI có một vài đầu vào từ người dùng (ví dụ giới tính, tuổi và chủng tộc dưới dạng danh mục có thể nhấp), sau đó gán ID người dùng cho mỗi đầu vào (sẽ được hiển thị dưới dạng đầu ra trong GUI). Dưới mui xe sẽ là một tập dữ liệu mà GUI đang tạo với đầu vào của người dùng này (Trong ví dụ này, nó sẽ là 4 biến: ID người dùng, giới tính, tuổi và chủng tộc).Gói R hoặc mã nào có thể được sử dụng để tạo các GUI tùy chỉnh?

Có ai đã tạo GUI như thế này trước đây không? Bất kỳ gói R hoặc mã khuyến nghị nào?

Cảm ơn!

+0

Câu hỏi này có khả năng nhận được câu trả lời hay, đầy đủ về SO. – whuber

+0

Điều gì về GUI dựa trên web, ví dụ: có tồn tại các mô-đun Apache - hoặc bạn quan tâm đến một GUI rất gắn với R? – Iterator

+1

Đối với vấn đề đó, nếu bạn tuân theo các khảo sát dựa trên web, có một số hệ thống tốt ngoài đó và một số phần mềm R tốt để phân tích đầu ra của các hệ thống khảo sát chuẩn như vậy. Tùy thuộc vào bạn, tôi chỉ yêu cầu làm rõ nhu cầu của bạn. – Iterator

Trả lời

12

Có nhiều cách để thực hiện việc này. Dưới đây là một trong những sử dụng gói gWidgets bổ trợ. Nên làm việc với một trong hai phụ trợ RGtk2 hoặc 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ó một giải pháp mới được xây dựng trên đầu trang của RStudio. Nó được trình bày trong useR2011, đây là một liên kết đến các poster:

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

+0

Đối với người dùng không sử dụng rstudio, bạn có thể sử dụng gWidgetsQuản lý chính xác cách tương tự như điểm Tal. Gói này không phải là cran, nhưng giả mạo, tại thời điểm này: https://r-forge.r-project.org/R/?group_id=761 – jverzani

+0

@jverzani Số phận của 'gWidgetsManipulate' là gì? Nó được chuyển đến 'gWidgets2'? Tôi nghĩ sẽ rất tuyệt khi có một gói phần mềm như RStudio thao tác trên CRAN .. – landroni

+0

Có một ví dụ ở đây: https://github.com/jverzani/gWidgets2/blob/master/inst/examples/manipulate.R – jverzani

Các vấn đề liên quan