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)
|