Write.csv使用操作按钮

时间:2017-10-06 06:47:39

标签: r shiny shiny-reactivity

所以基本上我正在尝试进行一些小的排序设置,一旦完成某个分析,我就想将生成的某个数据集导出到预定义的位置和预定义的名称(基于之前选择的输入)。为此,我使用了单击时执行此操作的操作按钮,

observeEvent(input$export_button, {
        write.csv(input_dummy_data4ads,paste0("Dummy Files/",unique(input_dummy_data4ads$Dependent_Variable),"_", unique(input_dummy_data4ads$Model_Type),"_", unique(input_dummy_data4ads$AGM),".csv"),row.names = F,na="")
           }) 

这里的问题是,如果我单击一次操作按钮,它会生成所需的csv文件并在所需的位置。但是在按下它一次后,它取值为1(输入$ export_button),所以当我使用单选按钮选择一组新输入并根据它生成一个新图(通过单击另一个操作按钮)时,该应用程序会保存一个在所需位置使用新名称(基于新输入)的新csv文件。我要做的是重置操作按钮的值,以便只有在每次单击时才创建新的csv文件。

我试图理解这一点,但无法将其合并https://github.com/rstudio/shiny/issues/167

1 个答案:

答案 0 :(得分:0)

闪亮中有特定功能,在 ui 中使用downloadButton,在服务器中使用downloadHandler

<强> server.R:

output$export_data <- downloadHandler(
  filename = function() {
    paste0("Dummy Files/", unique(input_dummy_data4ads$Dependent_Variable), "_", unique(input_dummy_data4ads$Model_Type), "_", unique(input_dummy_data4ads$AGM), ".csv")
  },
  content = function(con) {
    write.csv(input_dummy_data4ads, con, row.names = F, na = "")
  }
)

<强> ui.R:

downloadButton("export_data", "Export")