mirror of
https://github.com/rstudio/shiny.git
synced 2026-01-14 17:38:02 -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
93 lines
2.1 KiB
R
93 lines
2.1 KiB
R
library(shiny)
|
|
|
|
# Define UI for data upload app ----
|
|
ui <- fluidPage(
|
|
|
|
# App title ----
|
|
titlePanel("Uploading Files"),
|
|
|
|
# Sidebar layout with input and output definitions ----
|
|
sidebarLayout(
|
|
|
|
# Sidebar panel for inputs ----
|
|
sidebarPanel(
|
|
|
|
# Input: Select a file ----
|
|
fileInput("file1", "Choose CSV File",
|
|
multiple = TRUE,
|
|
accept = c("text/csv",
|
|
"text/comma-separated-values,text/plain",
|
|
".csv")),
|
|
|
|
# Horizontal line ----
|
|
tags$hr(),
|
|
|
|
# Input: Checkbox if file has header ----
|
|
checkboxInput("header", "Header", TRUE),
|
|
|
|
# Input: Select separator ----
|
|
radioButtons("sep", "Separator",
|
|
choices = c(Comma = ",",
|
|
Semicolon = ";",
|
|
Tab = "\t"),
|
|
selected = ","),
|
|
|
|
# Input: Select quotes ----
|
|
radioButtons("quote", "Quote",
|
|
choices = c(None = "",
|
|
"Double Quote" = '"',
|
|
"Single Quote" = "'"),
|
|
selected = '"'),
|
|
|
|
# Horizontal line ----
|
|
tags$hr(),
|
|
|
|
# Input: Select number of rows to display ----
|
|
radioButtons("disp", "Display",
|
|
choices = c(Head = "head",
|
|
All = "all"),
|
|
selected = "head")
|
|
|
|
),
|
|
|
|
# Main panel for displaying outputs ----
|
|
mainPanel(
|
|
|
|
# Output: Data file ----
|
|
tableOutput("contents")
|
|
|
|
)
|
|
|
|
)
|
|
)
|
|
|
|
# Define server logic to read selected file ----
|
|
server <- function(input, output) {
|
|
|
|
output$contents <- renderTable({
|
|
|
|
# input$file1 will be NULL initially. After the user selects
|
|
# and uploads a file, head of that data file by default,
|
|
# or all rows if selected, will be shown.
|
|
|
|
req(input$file1)
|
|
|
|
df <- read.csv(input$file1$datapath,
|
|
header = input$header,
|
|
sep = input$sep,
|
|
quote = input$quote)
|
|
|
|
if(input$disp == "head") {
|
|
return(head(df))
|
|
}
|
|
else {
|
|
return(df)
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
# Create Shiny app ----
|
|
shinyApp(ui, server)
|