r - 在 Rmd 文件中添加下载按钮但不显示表格
问题描述
我能够显示一个表并使用数据表 DT 库添加一个下载链接,例如
mtcars %>% DT::datatable(extensions = 'Buttons',
options = list(dom = 'Bfrtip',
pageLength = 200,
buttons = list('copy', 'csv', 'excel')))
但是,我没有使用 mtcars,我使用的是大型 csv 训练数据,最终用户希望能够下载到 csv。
上面的块,当与我的真实数据一起使用时会给出一条消息:
看来您的数据对于客户端数据表来说太大了。可以考虑服务器端处理:https ://rstudio.github.io/DT/server.html
是否有另一种方法可以提供下载按钮而无需尝试实际显示表格(从而遇到内存问题)?
解决方案
如果您只想在 Rmd 文档中添加一个下载按钮,您可以使用shiny::downloadHandler
with 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")
)
```
推荐阅读
- maven - 如何修复两个同名但版本不同的相同jar引起的错误?
- c++ - 什么时候删除对象?
- python - 替换为模式
- autodesk-forge - 在 Forge Viewer 中更改剖切面工具的大小
- time-series - 基于概率的股票价格分类
- laravel - 使用 Laravel 对所有结果进行排序
- ruby-on-rails - 如何在 Rails 上使用 axlsx 在不同的侧面添加不同颜色的边框?
- javascript - 在网格中垂直堆叠控件?
- amazon-web-services - 使用 SQS 扩展 AWS Lambda
- android - Android Studio 3.2.1 中的 NDK 错误是否有任何解决方案