首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当没有文件上传到闪亮的应用程序时,使用默认的csv文件

当没有文件上传到闪亮的应用程序时,使用默认的csv文件
EN

Stack Overflow用户
提问于 2019-04-08 05:41:34
回答 1查看 1.1K关注 0票数 3

我有一个闪亮的应用程序,用户上传两个csv文件-一个参考数据集和一个测试数据集。数据集在服务器代码中的反应性表达式中进行操作,然后将其输出用于生成表和图表。

如果没有上载引用数据集,我希望使用默认的参考数据集。如果没有上载数据,如何让我的反应性表达式返回默认数据?

我尝试在应用程序的开头加载数据(调用它为“default.ref.data”,然后在服务器代码中使用以下内容:

代码语言:javascript
复制
ref.data=reactive({
   req(input$ref.upload)
   # read the data frame that has been uploaded
   df.ref1 <- read.csv(input$ref.upload$datapath) 

   #do some stuff

   return(df.ref1)
   if(is.null(input$files)) return(default.ref.data)
})

最后一行的目标是返回我先前读取的默认文件,如果没有上载输入文件。这不管用。我该怎么做?我应该从不同的角度看它吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-08 07:55:50

像这样的事情应该有效:

代码语言:javascript
复制
library(shiny)

ui <- fluidPage(fileInput("file1", "Choose CSV File",
                          multiple = FALSE,
                          accept = c("text/csv",
                                     "text/comma-separated-values,text/plain",
                                     ".csv")), tableOutput("tbl"))

server <- function(input, output) {

  get_file_or_default <- reactive({
    if (is.null(input$file1)) {
      mtcars
    } else {
      read.csv(input$file1$datapath)
    }
  })

  output$tbl <- renderTable(get_file_or_default())
}

shinyApp(ui, server)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55566874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档