2016-05-09 19 views
0

Hallo Ich versuche, eine glänzende App einzurichten, aber ich habe Probleme beim Zugriff auf Daten von einem Schieberegler, den ich eingerichtet habe. Aus irgendeinem Grund input$slider1[1] ist keine ganze Zahl, also kann ich nicht mit Num_adults vergleichen, die eine ganze Zahl ist.R Shiny Schieberegler Probleme

Dies ist der Code, wo ich versuche, den Schieber

server<-function(input,output){ 
    output$bar1 <- renderPlot({ 
    AllData1 <- AllData[!is.na(AllData$Num_adults),] 
     AllData1$Num_adults <- as.numeric(AllData1$Num_adults) 
     filter(AllData1$Num_adults >= input$slider1[1], AllData1$Num_adults <= input$slider1[2]) 
    ggplot(AllData1, aes(x=AllData1$Num_adults) + geom_histogram) 
    }) 
} 

zuzugreifen und dies ist der Code, wo ich den Regler eingestellt. Jede Hilfe wird geschätzt. Vielen Dank!

ui<-fluidPage(
    titlePanel(a(span("Data on Recipients of MSF.", style="color:purple"))), 
    sidebarLayout(
    sidebarPanel(
     helpText("For the first graphic, you can..."), 

     sliderInput(inputId = "slider1", 
        label = h3("Number of adults in a household"), 
        min = 0, max = 8, value = c(1,2))), 

    mainPanel(plotOutput("bar1")) 
)) 

shinyApp(ui=ui, server=server) 
+0

Hinzufügen von 'cat (class (input $ slider1 [1])); cat ('\ n'); 'an den Servercode vor' ggplot' zeigt deutlich, dass die Klasse dieses Wertes 'integer' ist, wie auf meiner Konsole gedruckt. Ich kann den Rest des Servercodes nicht testen, da ich keinen Zugriff auf 'AllData1' habe. – Gopala

+0

Es gibt auch ein Problem in Ihrer Zeile 'ggplot (AllData1, aes (x = AllData1 $ Num_adults) + geom_histogram)'. Es sollte 'ggplot (AllData1, aes (x = Num_adults)) + geom_histogram()' sein. – Gopala

+0

Auch scheint Ihr 'Filter' falsch, obwohl nicht sicher, welches Paket Sie für diese Methode verlassen. – Gopala

Antwort

0

Ändern Ihres Server-Code, um diese Arbeit sollte (obwohl ich nicht ohne Daten testen):

library(dplyr) 
server<-function(input,output){ 
    output$bar1 <- renderPlot({ 
    AllData1 <- AllData[!is.na(AllData$Num_adults), ] 
    AllData1 <- filter(AllData1, Num_adults >= input$slider1[1] & 
            Num_adults <= input$slider1[2]) 
    ggplot(AllData1, aes(x = Num_adults)) + geom_histogram() 
    }) 
} 

Sie können, indem man in den filter Aufruf der NA Filterung vereinfachen, aber das ist nicht wesentlich.