在 r shiny app 开始时上传 csv 文件(准占位符文件)
csv file upload at start of r shiny app (quasi placeholder file)
使用这段代码,我可以在我闪亮的应用程序中上传一个 csv 文件。
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
fileInput("file1", "Choose CSV File", accept = ".csv"),
checkboxInput("header", "Header", TRUE)
),
mainPanel(
tableOutput("contents")
)
)
)
server <- function(input, output) {
output$contents <- renderTable({
file <- input$file1
ext <- tools::file_ext(file$datapath)
req(file)
validate(need(ext == "csv", "Please upload a csv file"))
read.csv(file$datapath, header = input$header)
})
}
shinyApp(ui, server)
我想在我闪亮的应用程序开始时自动加载占位符 csv 文件说 df.csv
。
这是可能的还是我重新考虑了我的策略?
在server
中,我们可以在加载
时使用if/else
创建占位符.csv
server <- function(input, output) {
output$contents <- renderTable({
if(is.null(input$file1)) {
dat <- read.csv(file.path(getwd(), "df.csv"))
} else {
file <- input$file1
ext <- tools::file_ext(file$datapath)
req(file)
validate(need(ext == "csv", "Please upload a csv file"))
dat <- read.csv(file$datapath, header = input$header)
}
dat
})
}
shinyApp(ui, server)
使用这段代码,我可以在我闪亮的应用程序中上传一个 csv 文件。
library(shiny)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
fileInput("file1", "Choose CSV File", accept = ".csv"),
checkboxInput("header", "Header", TRUE)
),
mainPanel(
tableOutput("contents")
)
)
)
server <- function(input, output) {
output$contents <- renderTable({
file <- input$file1
ext <- tools::file_ext(file$datapath)
req(file)
validate(need(ext == "csv", "Please upload a csv file"))
read.csv(file$datapath, header = input$header)
})
}
shinyApp(ui, server)
我想在我闪亮的应用程序开始时自动加载占位符 csv 文件说 df.csv
。
这是可能的还是我重新考虑了我的策略?
在server
中,我们可以在加载
if/else
创建占位符.csv
server <- function(input, output) {
output$contents <- renderTable({
if(is.null(input$file1)) {
dat <- read.csv(file.path(getwd(), "df.csv"))
} else {
file <- input$file1
ext <- tools::file_ext(file$datapath)
req(file)
validate(need(ext == "csv", "Please upload a csv file"))
dat <- read.csv(file$datapath, header = input$header)
}
dat
})
}
shinyApp(ui, server)