library(shiny) # Define UI for slider demo app ---- ui <- fluidPage( # App title ---- titlePanel("Sliders"), # Sidebar layout with input and output definitions ---- sidebarLayout( # Sidebar to demonstrate various slider options ---- sidebarPanel( # Input: Simple integer interval ---- sliderInput("integer", "Integer:", min = 0, max = 1000, value = 500), # Input: Decimal interval with step value ---- sliderInput("decimal", "Decimal:", min = 0, max = 1, value = 0.5, step = 0.1), # Input: Specification of range within an interval ---- sliderInput("range", "Range:", min = 1, max = 1000, value = c(200,500)), # Input: Custom currency format for with basic animation ---- sliderInput("format", "Custom Format:", min = 0, max = 10000, value = 0, step = 2500, pre = "$", sep = ",", animate = TRUE), # Input: Animation with custom interval (in ms) ---- # to control speed, plus looping sliderInput("animation", "Looping Animation:", min = 1, max = 2000, value = 1, step = 10, animate = animationOptions(interval = 300, loop = TRUE)) ), # Main panel for displaying outputs ---- mainPanel( # Output: Table summarizing the values entered ---- tableOutput("values") ) ) ) # Define server logic for slider examples ---- server <- function(input, output) { # Reactive expression to create data frame of all input values ---- sliderValues <- reactive({ data.frame( Name = c("Integer", "Decimal", "Range", "Custom Format", "Animation"), Value = as.character(c(input$integer, input$decimal, paste(input$range, collapse = " "), input$format, input$animation)), stringsAsFactors = FALSE) }) # Show the values in an HTML table ---- output$values <- renderTable({ sliderValues() }) } # Create Shiny app ---- shinyApp(ui, server)