mirror of
https://github.com/rstudio/shiny.git
synced 2026-02-07 13:15:00 -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
76 lines
1.9 KiB
R
76 lines
1.9 KiB
R
library(shiny)
|
|
library(datasets)
|
|
|
|
# Data pre-processing ----
|
|
# Tweak the "am" variable to have nicer factor labels -- since this
|
|
# doesn't rely on any user inputs, we can do this once at startup
|
|
# and then use the value throughout the lifetime of the app
|
|
mpgData <- mtcars
|
|
mpgData$am <- factor(mpgData$am, labels = c("Automatic", "Manual"))
|
|
|
|
|
|
# Define UI for miles per gallon app ----
|
|
ui <- fluidPage(
|
|
|
|
# App title ----
|
|
titlePanel("Miles Per Gallon"),
|
|
|
|
# Sidebar layout with input and output definitions ----
|
|
sidebarLayout(
|
|
|
|
# Sidebar panel for inputs ----
|
|
sidebarPanel(
|
|
|
|
# Input: Selector for variable to plot against mpg ----
|
|
selectInput("variable", "Variable:",
|
|
c("Cylinders" = "cyl",
|
|
"Transmission" = "am",
|
|
"Gears" = "gear")),
|
|
|
|
# Input: Checkbox for whether outliers should be included ----
|
|
checkboxInput("outliers", "Show outliers", TRUE)
|
|
|
|
),
|
|
|
|
# Main panel for displaying outputs ----
|
|
mainPanel(
|
|
|
|
# Output: Formatted text for caption ----
|
|
h3(textOutput("caption")),
|
|
|
|
# Output: Plot of the requested variable against mpg ----
|
|
plotOutput("mpgPlot")
|
|
|
|
)
|
|
)
|
|
)
|
|
|
|
# Define server logic to plot various variables against mpg ----
|
|
server <- function(input, output) {
|
|
|
|
# Compute the formula text ----
|
|
# This is in a reactive expression since it is shared by the
|
|
# output$caption and output$mpgPlot functions
|
|
formulaText <- reactive({
|
|
paste("mpg ~", input$variable)
|
|
})
|
|
|
|
# Return the formula text for printing as a caption ----
|
|
output$caption <- renderText({
|
|
formulaText()
|
|
})
|
|
|
|
# Generate a plot of the requested variable against mpg ----
|
|
# and only exclude outliers if requested
|
|
output$mpgPlot <- renderPlot({
|
|
boxplot(as.formula(formulaText()),
|
|
data = mpgData,
|
|
outline = input$outliers,
|
|
col = "#75AADB", pch = 19)
|
|
})
|
|
|
|
}
|
|
|
|
# Create Shiny app ----
|
|
shinyApp(ui, server)
|