【发布时间】:2016-04-24 06:25:46
【问题描述】:
我有一个 Shiny 应用程序,我想在其中完成以下任务:
1) 用户按下按钮
2) 数据框被导出为 .csv,保存在工作目录(带有 server.R 和 ui.R)中,或者理想情况下保存在下一级。
我希望这会自动发生,因为最终我将使用 checkboxGroupboxInput 连接它以循环遍历数据并生成一组过滤后的 .csv。
这是我目前能得到的最接近的值,fileToDownload 代表我的数据框:
ui.R:
downloadButton("rptDownload", "Download Report"),
服务器.R:
output$rptDownload <- downloadHandler(
filename = function() {
paste(getwd(), '/rpt/test.csv',sep = '')
},
content = function(con) {
write.csv(fileToDownload, file = file.path(con))
}
)
当我从 Chrome 浏览器运行它时,它会下载到 .csv,但它会以我想要的文件路径作为名称的一部分命名:C--Work-Project_A-Shiny_DB-rpt-test .csv。它将 getwd() 和 /rpt/ 视为名称的一部分,而不是文件路径。它被下载到我的下载文件夹,而不是当前的工作目录。
关于如何改进我的代码有什么建议吗?
请注意,我已尝试合并其他线程的一些建议。其中:
Shiny (R): Download selection in selectInput to local machine
Automatic multi-file download in R-Shiny
https://groups.google.com/forum/#!topic/shiny-discuss/MaN4-ia6wfk
但这些似乎让我离完成我想做的事情更远了。感谢您的帮助。
【问题讨论】:
-
您的问题找到合适的答案了吗?