2015-10-13 8 views
6

selectInput:yapmak liste parlak selectInput gereci bu formatta seçimler adlandırılmış listesi gerektirir

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

veriler aynı değişken adlarını olmaz benim parlak app gidiyor çerçevelerini, bu yüzden istiyorum anında isimleri listesi oluşturmak için.

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 = ",") 

bu kadar yakın görünüyor ama çalışmıyor:

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

enter image description here

nasıl ben bu işi yapabilir burada

bir girişimdir? Sorunuzu anladım

cevap

3

Merhaba eğer doğru sadece bunu yapabilirdi:

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)