Есть ли способ загрузить несколько файлов .zip в приложение [R] Shiny и выбрать определенный тип файла c для извлечения? - PullRequest
0 голосов
/ 19 июня 2020

В настоящее время я могу работать только с одним архивом .zip за раз, даже если я установил "multiple = T":

ui.R {
...fileInput("zippers", "upload .zip files",multiple=T,accept = ".zip"),
}

Я могу получить имена интересующих меня файлов (найден в другом топи c) также для одного экземпляра:

server.R{
zipped_csv_names <- grep('\\.csv$', unzip(input$zippers$datapath, list=TRUE)$Name, ignore.case=TRUE, value=TRUE) 
}

при попытке использовать два или более файлов я получаю сообщение «Ошибка: недопустимый аргумент имени почтового индекса»

1 Ответ

0 голосов
/ 19 июня 2020

Это возвращает список data.frames с путем к zip-файлу и именами файлов csv внутри.

server <- function(input, output) {

  v <- reactiveValues(zipped_csv_names = NULL)

  observeEvent(input$zippers, {
    csv_names <- lapply(input$zippers$datapath, function(x){
      z <- unzip(x, list = T)
      csvFile <- grep("*.csv", z$Name, value = T)
      if (length(csvFile) > 0)
        return(data.frame(fPath = rep(x, n = length(csvFile)), fName = csvFile))
    })
    v$zipped_csv_names <- csv_names[!sapply(csv_names, is.null)]
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...