2015-04-14 10 views
5

Sto cercando di creare un'applicazione lucida utilizzando la funzione conditionalPanel dal pacchetto shiny. La condizione deve essere scritto in JavaScript ma vorrei essere in grado di utilizzare una condizione (scritto in R)condizionalePanel condizioni javascript in lucido: c'è un operatore R% in% in javascript?

"TP53" %in% unlist(input$ModelVariables) 

gli stati documenatation come segue:

condizione - Un'espressione JavaScript che essere valutato ripetutamente per determinare se il pannello deve essere visualizzato.

Non ho familiarità con JavaScript affatto. Ho provato input.ModelVariables == 'TP53' ma questo non funziona quando input.ModelVariables ha lunghezza più grande di 1.

mio sidebarPanel frammento con conditionalPanel è al di sotto

    checkboxGroupInput("ModelVariables", 
             label = h3("Which variables to view?"), 
             choices = list("cohort", 
                 "stage",   
                 "therapy",    
                 "TP53", 
                 "MDM2"), 
             selected = list("TP53") 
           ), 
        conditionalPanel(condition = "'TP53' in unlist(input.ModelVariables)", 
            checkboxGroupInput("ModelVariablesTP53", 
                 label = h3("Which mutations to view?"), 
                 choices = list("Missense", 
                     "Other",   
                     "WILD"), 
                 selected = list("Missense", 
                     "Other",   
                     "WILD") 
                 ) 
+0

Avete provato ''TP53' in input.ModelVariables' in JavaScript? –

+0

Questo ''TP53' in input.ModelVariables' non funziona poiché 'input.ModelVariables' è una lista. E 'condition =" 'TP53' in unlist (input.ModelVariables) "' rende permanente condtitionalPanel. –

+0

Ho aggiornato la mia domanda con altro codice. –

risposta

9

Secondo this answer questa condizione dovrebbe funzionare (e funziona per me) condition = "input.ModelVariables.indexOf('TP53') > -1"