2015-10-13 17 views
6

widget selectInput bóng đòi hỏi một danh sách tên các lựa chọn ở định dạng này:làm danh sách cho thả xuống bóng selectInput

choices = list(
    "mpg" = 1, 
    "cyl" = 2, 
    "disp" = 3, 
    "hp" = 4 
    # ..... etc 
) 

dữ liệu các khung sẽ ứng dụng sáng bóng của tôi sẽ không có tên biến giống nhau, vì vậy tôi muốn để tạo danh sách tên khi đang di chuyển.

đây là một nỗ lực:

data(mtcars) 

choices = data.frame(
    var = names(mtcars), 
    num = 1:length(names(mtcars)) 
) 

> head(choices) 
    var num  mylist 
1 mpg 1 "mpg" = 1 
2 cyl 2 "cyl" = 2 
3 disp 3 "disp" = 3 
4 hp 4 "hp" = 4 
5 drat 5 "drat" = 5 
6 wt 6 "wt" = 6 

paste(choices$mylist, collapse = ",") 

điều này có vẻ gần gũi nhưng nó không hoạt động:

... 
box(
     selectInput(
      "select", 
      label = h3("Select box"), 
      choices = list(
      paste(choices$mylist, collapse = ",") 
     ) 
    ) 
... 

enter image description here

làm thế nào tôi có thể làm công việc này?

Trả lời

3

Hi nếu tôi hiểu câu hỏi của bạn đúng bạn chỉ có thể làm điều đó:

data(mtcars) 

choices = data.frame(
    var = names(mtcars), 
    num = 1:length(names(mtcars)) 
) 
# List of choices for selectInput 
mylist <- as.list(choices$num) 
# Name it 
names(mylist) <- choices$var 
# ui 
ui <- fluidPage(
    selectInput(
    "select", 
    label = h3("Select box"), 
    choices = mylist 
) 
) 
# server 
server <- function(input, output) { 

} 
# app 
shinyApp(ui = ui, server = server) 
Các vấn đề liên quan