Shiny DownloadHandler не может сохранить файл .csv - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь загрузить свои данные в CSV.файл.К сожалению, несмотря на то, что загрузка начинается, она все еще занята вычислением и не сохраняет данные.Размер файла составляет 8 МБ, и я мог обойти эту проблему, загрузив только отфильтрованный набор данных.Я также попытался установить размер донотажа равным 10 МБ с помощью shiny.maxRequestSize=30*1024^2. Мне действительно нужна опция для сохранения всего набора данных.Если бы кто-то мог предоставить некоторые идеи, я был бы очень признателен (и да, я запускаю приложение в браузере)

моя функция пользовательского интерфейса выглядит так:

tbl <- read.csv(file.choose(new = FALSE), header = TRUE, sep = ",", row.names=1)

ui <- navbarPage(
  title = "Data Table Options",

  #Tab with the dataset table
  tabPanel("Lot Dataset",
           div(h3("Download"), style = "color:blue"),
           helpText(" Select the download format"),
           radioButtons("type", "Format type:",
                        choices = c("Excel (CSV)", "Text (Space Separated)", "Doc")),
           helpText(" Click on the download button to download the Lot Dataset"),
           downloadButton("download_filtered", "Download Filtered Data"),   
           br(),
           br(),
           br(),
           DT::dataTableOutput("dt"),  #datatable
           ),
)

моя серверная функция так:

server <- function(session, input, output) {

  #Increasing Downloadsize to 10MB
  options(shiny.maxRequestSize=10*1024^2)

 #render the datatable
  output$dt <- DT::renderDataTable({
    datatable(tbl, filter = "top", options =  list(
      lengthMenu = list(c(25, 50, 100, -1), c("25", "50", "100", "All")), 
      pageLength = 25)) 
  })
  #bottom panel with row indices 
  output$filtered_row <- 
    renderPrint({
      input[["dt_rows_all"]]
    })

  #file extension for download
  fileext <- reactive({
    switch(input$type,
           "Excel (CSV)" = "csv", "Text" = "txt", "Doc" = "doc")
  })

  #downloadHandler() for file download of Lot Dataset
  output$download_filtered <- downloadHandler(

    filename = function() {
      paste("MLdataset_test", fileext(), sep=".")  #filename
    },

    content = function(file) {

      #write tbl with filter
      write.csv(tbl[input[["dt_rows_all"]], ],
                file = file, row.names = F)
    }
  )
}

Любая помощь приветствуется !!!

...