我有一个 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):将 selectInput 中的选择下载到本地计算机 https://stackoverflow.com/questions/31390521/shiny-r-download-selection-in-selectinput-to-local-machine
R-Shiny 中的自动多文件下载 https://stackoverflow.com/questions/20862151/automatic-multi-file-download-in-r-shiny
https://groups.google.com/forum/#!topic/shiny-discuss/MaN4-ia6wfk https://groups.google.com/forum/#!topic/shiny-discuss/MaN4-ia6wfk
但这些似乎让我离完成我想做的事情越来越远。感谢您的任何帮助。