Добавить кнопку загрузки в файл Rmd, но не отображать таблицу - PullRequest
1 голос
/ 29 января 2020

Я могу отобразить таблицу и добавить ссылку на загрузку, используя библиотеку Data Table DT, например,

mtcars %>% DT::datatable(extensions = 'Buttons', 
                                        options = list(dom = 'Bfrtip', 
                                                       pageLength = 200,
                                                       buttons = list('copy', 'csv', 'excel')))

Однако я не использую mtcars. Я использую большой CSV-файл обучающих данных и Конечный пользователь хотел бы иметь возможность загрузить в CSV.

Приведенный выше блок при использовании с моими реальными данными выдает сообщение:

Кажется, ваши данные слишком велики для клиента DataTables. Вы можете рассмотреть обработку на стороне сервера: https://rstudio.github.io/DT/server.html

Есть ли альтернативный способ, когда я могу предоставить кнопку загрузки, не пытаясь фактически отобразить таблицу (и, таким образом, ударить по памяти вопросы)?

1 Ответ

1 голос
/ 29 января 2020

Если вы просто хотите добавить кнопку загрузки в документ Rmd, вы можете использовать shiny::downloadHandler с runtime: shiny. Например, этот Rmd загружает mtcars как файл .csv:

---
title: "Download .csv"
runtime: shiny
output: html_document
---

```{r, echo=FALSE}

## data (possibly a reactive expression)
myData <- mtcars

## create downloadButton in Rmd document
downloadHandler(
  filename = function() { 
    paste("data-", Sys.Date(), ".csv", sep = "")
  }, 
  content = function(file) {
    write.csv(myData, file)
  },
  outputArgs = list(label = "Download .csv")
)

```
...