2016-08-08 8 views
0

Ich versuche, ein Dropdown für selectInput von einem Datenrahmen in einer glänzenden Anwendung zu bevölkern und scheint es nicht zu funktionieren, hier ist eine abgespeckte Version:Rückgabe Datenrahmen Wert in reaktiven Selectinput für Shiny

datapr<-data.frame(type=c("Analog", "Digital", "Mixed Signal","Analog"),process=c("Bipolar","CMOS","BiCMOS","Bipolar"),funct=c("BJT","Mux","Mux","Regulator")) 

Wenn ich diesen Datenrahmen zu beginnen, meine glänzende Anwendung Anrufe und verwende sie, wie so:

ui.R 

shinyUI({ 
selectInput("type",h4("Type:"),list("Analog","Digital","Mixed Signal")) 
selectInput("process",h4("Process:"),"") 
}) 

server.R 

shinyServer(function(input,output,session){ 
observe({updateSelectInput(session,"process",choices=datapr$process[datapr$type==input$type]) 
}) 

Was ich steige aus einer Nummer anstelle der Eintragung des tatsächlichen Datenrahmen und kann nicht scheinen zu verwenden, unname(), unique(), factor(), as.list() oder alles, was einfach ist, um den Eintrag als zu extrahieren ist. Dies hat vor der Einführung von SelectizeInput funktioniert. Jede Hilfe wird sehr geschätzt.

Antwort

2

Dieser arbeitete für mich:

ui.R

library(shiny) 


    shinyUI(fluidPage(

      selectInput("type",h4("Type:"),list("Analog","Digital","Mixed Signal")), 
      selectInput("process",h4("Process:"),"") 


    )) 

server.R

library(shiny) 
    datapr<-data.frame(type=c("Analog", "Digital", "Mixed Signal","Analog"), 
         process=c("Bipolar","CMOS","BiCMOS","Bipolar"), 
         funct=c("BJT","Mux","Mux","Regulator")) 
    shinyServer(function(input,output,session){ 
      observe({ 
        updateSelectInput(session,"process", 
             choices=as.character(datapr$process[datapr$type==input$type])) 
      }) 
    }) 
+0

Ihnen sehr danken. einfache Lösung, mit der ich Probleme hatte. – mjcampy

Verwandte Themen