Advertisement
swchen

[shiny] selectinput interactive with sliderinput-2

Jul 20th, 2015
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 1.42 KB | None | 0 0
  1. ui:
  2.  
  3.  
  4. library(shiny)
  5.  
  6. shinyUI((fluidPage(
  7.    titlePanel("hirearchy data group"),
  8.    sidebarLayout
  9.    (
  10.    sidebarPanel
  11.    (
  12.    selectInput("brand",label="choice the brand",choices=c("all","w","s")),
  13.    sliderInput("amount",label="choice the amount",min=range(df$amount)[1],max=range(df$amount)[2],value=0)
  14.    
  15.    ),
  16.    
  17.    mainPanel
  18.    (
  19.    dataTableOutput("table")
  20.    )
  21.    
  22.    ))))
  23.  
  24. server:
  25.  
  26. library(shiny)
  27.  
  28. ## test dataframe
  29. df <- data.frame(id = c("1","1","1","1","1","1","2","2","2","2"),
  30.                  brand = c("w","w","w","s","s","s","w","w","w","s"),
  31.                  model = c("w123","w123","w456","s99","s88","s88","w123","w456","w456","s99"),
  32.                  amount = c(10,9,7,8,6,4,7,3,2,1))
  33. df$id=as.character(df$id)
  34. df$brand=as.character(df$brand)
  35. df$model=as.character(df$model)
  36.  
  37.  
  38. shinyServer(function(input, output, session) {
  39.    output$table <- renderDataTable({
  40.       if(input$brand!="all") {df=df[which(df$brand==input$brand),]}
  41.       if(input$amount!=0) {df=df[which(df$amount==input$amount),]}
  42.      
  43.    df
  44.    })
  45.    amount=observe(
  46.       {
  47.       input$brand
  48.          if (input$brand=="all"){val=range(df$amount)}
  49.          else if (input$brand=="w"){val=range(df$amount[df$brand==input$brand])}
  50.          else if (input$brand=="s"){val=range(df$amount[df$brand==input$brand])}
  51.          updateSliderInput(session,"amount",min=val[1],max=val[2],value=val[1])
  52.       }
  53.    )
  54. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement