2016-05-09 2 views
0

Привет Я пытаюсь настроить приложение «Блестящее», но у меня возникают проблемы с доступом к данным с ползунка, который я настроил. По какой-то причине input$slider1[1] не является целым числом, поэтому я не могу сравниться с Num_adults, который является целым числом.R Проблемы с блестящим слайдером

Это код, где я пытаюсь получить доступ ползунок

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) 
    }) 
} 

и это код, где я настраивал ползунок. Любая помощь приветствуется. Благодаря!

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

Добавление 'cat (class (input $ slider1 [1])); cat ('\ n'); 'к серверному коду перед' ggplot' ясно показывает, что класс этого значения является 'integer', как напечатан на моей консоли. Я не могу проверить остальную часть вашего кода сервера, так как у меня нет доступа к 'AllData1'. – Gopala

+0

Существует также проблема в вашей строке 'ggplot (AllData1, aes (x = AllData1 $ Num_adults) + geom_histogram)'. Это должен быть 'ggplot (AllData1, aes (x = Num_adults)) + geom_histogram()'. – Gopala

+0

Кроме того, ваш «фильтр» кажется неправильным, хотя не уверен, какой пакет вы используете для этого метода. – Gopala

ответ

0

Изменение кода сервера это должно работать (хотя я не могу проверить без данных):

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() 
    }) 
} 

Вы можете упростить фильтрацию NA путем включения в filter вызова, но это не существенный.

Смежные вопросы