您好我正在尝试设置一个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)
答案 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
过滤,但这不是必需的。