87 lines
2.3 KiB
R
87 lines
2.3 KiB
R
|
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)
|