mirror of
https://github.com/rstudio/shiny.git
synced 2026-02-08 05:35:07 -05:00
* - Convert all example apps to single file app.R file - Make relevant updates to Readmes to match up with app.R structure - Add color to plots (RStudio blue) - In 04_mpg example: Show outliers by default, as opposed to hide, since this is more routine - In 06_tabsets and 08_html examples: Don't name random data vector "data" - Add extensive comments to app.R files and use consistent formatting of comments across examples - In 09_upload example: Use req() to check for NULL entry * add news entry summarizing changes * use true RStudio blue, #75AADB * Conver shinyApp calls at the end to drop argument name in examples 3-11, except for the custom HTML example. Kept them in for examples 1&2 for completeness in first exporuse to function. * Pull news items that got added before this PR was merged * Update comment for shinyApp function -- it creates an app object, doesn't run the app
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)
|