r闪亮的子集

时间:2017-12-26 18:12:31

标签: r shiny

我一直致力于一个闪亮的可视化项目。我试图通过给定的输入过滤数据集 - 滑块的状态和范围的数量。不幸的是,r'省略'代码部分并输出整个数据集。我也收到警告:“数据”不是图形参数。

library(shiny)
library(Ecdat)


u <- shinyUI(pageWithSidebar(
  headerPanel("Social benefits"),
  sidebarPanel(

    selectInput("variable", "Variable:",
                list("Unemployment", 
                     "Max benefit" 
               )),
    #Specification of state
    textInput("state", "State:", value = "93"),
    # Specification of range within an interval
    sliderInput("range", "Range:",
                min = 1, max = 100, value = c(20,100))
  ),
  mainPanel(
    plotOutput("mpgPlot")
  )

))

s <- shinyServer(function(input, output) 
{
  #filter by state -ERROR
  p <- reactive({ Benefits[Benefits$state == input$state,]})

  #filter by slider range - ERROR
  dataX <- reactive({ p()[input$range[1]:input$range[2],,drop = FALSE] })

  variable <- reactive({
    switch(input$variable,
           "Unemployment" = stateur,
           "Max benefit" = statemb
           )
    })

  caption <- reactive({
    paste(input$variable)
  })

  output$mpgPlot <- renderPlot({
    plot(variable(), data = dataX(), type = "l",ylab = caption())
  })

})
shinyApp(u,s)

1 个答案:

答案 0 :(得分:0)

实际需要的只是在变量之前指定数据集名称,因为环境中的数据集掩盖了过滤后的数据集。

output$urPlot <- renderPlot({
    plot(dataX()$stateur, data = dataX(), type = "l",ylab = "Unemployment")
  })
  output$mbPlot <- renderPlot({
    plot(dataX()$statemb, data = dataX(), type = "l",ylab = "Max benefit")
  })