2014-06-05 28 views
8

wiem używając następujący kod mogę tworzyć normalne menu rozwijane w lśniące,Tworzenie menu rozwijanego w błyszczące - R za pomocą tagów

selectInput("Input1", "Choose you Input:", choices = c('a1'='1','b2'='2')) 

co stworzy następujące rozwijanej

enter image description here

Ale jestem przy użyciu adresu conditionalPanel i dla którego zapełniam rodzaj wbudowanego menu rozwijanego s coś podobnego do tego

enter image description here

Korzystam z następującego kodu do wygenerowania tych menu.

conditionalPanel(condition="input.conditionedPanels==3", 
        div(style="display:inline-block", 
         tags$label('Menu1', `for` = 'Sample'), 
         tags$select(id = 'Sample', class="input-small")), 
        div(style="display:inline-block", 
         tags$label('Menu2', `for` = 'Sample1'), 
         tags$select(id = 'Sample1', class="input-small"))) 

Mój problem jest nie jestem w stanie dodać elementy do tych rozwijanego menu. Próbowałem wartości lub opcji, ale to niczego nie zmieniło.

Mam nadzieję, że dostarczyłem wystarczających informacji, daj mi znać, jeśli potrzebujesz więcej informacji.

Odpowiedz

5

Możesz podać listę znaczników do tagList. Tagi potrzebne są option tagi z value atrybutów można tworzyć je za pomocą mapply

library(shiny) 

runApp(list(
    ui = bootstrapPage(
    numericInput('n', 'Enter 3 for condition', 3, 0, 10), 
    conditionalPanel(condition="input.n==3", 
        div(style="display:inline-block", 
         tags$label('Menu1', `for` = 'Sample'), 
         tags$select(id = 'Sample', class="input-small", 
            tagList(mapply(tags$option, value = 1:10, 
                paste0(letters[1:10], 1:10), 
                SIMPLIFY=FALSE))) 
        ), 
        div(style="display:inline-block", 
         tags$label('Menu2', `for` = 'Sample1'), 
         tags$select(id = 'Sample1', class="input-small", 
            tagList(mapply(tags$option, value = 1:2, 
                paste0(letters[1:2], 1:2), 
                SIMPLIFY=FALSE))) 
        ) 
    ) 
    , textOutput("cond") 
), 
    server = function(input, output) { 
    output$cond <- renderText({ 
     if(input$n == 3){ 
     paste0("Sample value selected =", input$Sample, " Sample1 value selected =",input$Sample1) 
     } 
    }) 
    } 
)) 

oczywiście można po prostu użyć selectInput wewnątrz div na przykład:

library(shiny) 

runApp(list(
    ui = bootstrapPage(
    numericInput('n', 'Enter 3 for condition', 3, 0, 10), 
    conditionalPanel(condition="input.n==3", 
        div(style="display:inline-block", 
         selectInput("Sample", "Choose you Input:", choices = c('a1'='1','b2'='2')) 
        ), 
        div(style="display:inline-block", 
         tags$label('Menu2', `for` = 'Sample1'), 
         tags$select(id = 'Sample1', class="input-small", 
            tagList(mapply(tags$option, value = 1:2, 
                paste0(letters[1:2], 1:2), 
                SIMPLIFY=FALSE))) 
        ) 
    ) 
    , textOutput("cond") 
), 
    server = function(input, output) { 
    output$cond <- renderText({ 
     if(input$n == 3){ 
     paste0("Sample value selected =", input$Sample, " Sample1 value selected =",input$Sample1) 
     } 
    }) 
    } 
)) 
+0

to działało. Czy możesz wyjaśnić, co robi SIMPLIFY? Starałem się, aby to było prawdziwe, ale w tym przypadku elementy nie zostały wypełnione ... Także jakikolwiek pomysł, jak sprawić, by to menu wyglądało jak normalne, błyszczące menu selectInput. – vrajs5

+1

'SIMPLIFY = FALSE' zatrzymuje' mapply' od utworzenia tablicy z wyjścia i pozostawia wynik jako listę. Jak wygląda normalne błyszczące menu 'seleectInput'? – jdharrison

+0

Sprawdź pierwsze zdjęcie ... Jedno z wyborem obrazu wejściowego ... – vrajs5

Powiązane problemy