【问题标题】:Uploading many files in Shiny在 Shiny 中上传许多文件
【发布时间】:2016-04-25 20:08:54
【问题描述】:

我正在开发一个应用程序,帮助按主题/主题组织和可视化许多 PDF 文档。我可以上传和阅读单个 PDF,但阅读多个 PDF 文档有困难。

对于单个 PDF 文档:

ui.R

  ---
  fileInput('file1', 'Choose PDF File', accept=c('.pdf'))

 ---

服务器.R

   --------

   library(pdftools)

   -------


 mypdf<-reactive({

   inFile <- input$file1

   if (is.null(inFile)){
  return(NULL)
  }else{
  pdf_text(inFile$datapath)

   }

  })

要上传多个 PDF 文件,我必须在代码的 ui.R 部分使用 multiple = TRUE,但是如何读取所有上传的文件?

【问题讨论】:

    标签: r pdf shiny visualization text-mining


    【解决方案1】:

    我意识到这个问题比较老,但我一直在寻找相同的答案并构建一个最小的应用程序来测试功能。另一个答案完全涵盖了这个问题,但一如既往地可重现代码可以帮助我们大家节省时间,所以我决定分享我的最小测试应用程序。

    可重现的应用:

    # creating sample files to upload
    write.csv2(
      x = "diff same", 
      file = "test.csv"
    )
    
    write.csv2(
      x = "diffhere same", 
      file = "test2.csv"
    )
    
    
    ui <- fluidPage(
      sidebarLayout(
        sidebarPanel(
          fileInput(
            inputId = "files", 
            label = "Choose CSV File", 
            multiple = TRUE,
            accept = c("text/csv",
                      "text/comma-separated-values,text/plain",
                      ".csv")
          )
        ),
        mainPanel(
          tableOutput("contents")
        )
      )
    )
    
    server <- function(input, output) {
      output$contents <- renderTable({
        req(input$files)
        upload = list()
    
        for(nr in 1:length(input$files[, 1])){
          upload[[nr]] <- read.csv(
            file = input$files[[nr, 'datapath']]
          )
        }
    
        return(upload)
      })
    }
    
    shinyApp(ui, server)
    

    【讨论】:

      【解决方案2】:

      上传的文件可以像这样在for循环中读取

      for(i in 1:length(input$files[,1])){
        lst[[i]] <- read.csv(input$files[[i, 'datapath']])
      }
      

      这是 CSV 文件的示例,但您可以对 pdf 文件执行相同操作。

      【讨论】:

        猜你喜欢
        • 2020-07-29
        • 2019-01-17
        • 1970-01-01
        • 1970-01-01
        • 2018-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多