R Shiny滑块问题

时间:2016-05-09 03:00:31

标签: r shiny

您好我正在尝试设置一个Shiny应用,但我无法从我设置的滑块访问数据。出于某种原因,input$slider1[1]不是整数,因此我无法与Num_adults进行比较, 是整数。

这是我尝试访问滑块的代码

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)

1 个答案:

答案 0 :(得分: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过滤,但这不是必需的。