【问题标题】:Write.csv using Action buttonsWrite.csv 使用操作按钮
【发布时间】:2017-10-06 15:01:54
【问题描述】:

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

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 (input$export_button) 所以当我使用单选按钮选择一组新的输入并基于它生成一个新的图(通过单击另一个操作按钮)时,应用程序会保存一个在所需位置具有新名称(基于新输入)的新 csv 文件。我要做的是重置操作按钮的值,以便仅在我每次单击时才创建新的 csv 文件。

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

【问题讨论】:

    标签: r shiny shiny-reactivity


    【解决方案1】:

    shiny 中有特定的功能,请在 ui 中使用 downloadButton,在 server 中使用 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")
    

    【讨论】:

    • downloadButton 似乎不会将我在服务器中生成的文件自动保存在预定义的位置和预定义的名称中。这就是为什么我尝试使用有效的 actionButton(或者我认为),直到我意识到它只是第一次有效地工作。
    • @DanSchmidt,根据您的评论,我假设您只在本地计算机上执行此操作,而不是使用 shiny-server,通常这些文件是暂时的。看来您正在寻找更多重置actionButton,这只是isolate您的代码,请参阅this
    • 先生,感谢您的回复,我看到了相同的链接,但就像我提到的那样,我无法合并它。
    • @DanSchmidt,如果您提供一些可重现的代码,我们可以看看我们是否无法解决您的问题
    猜你喜欢
    • 2017-03-17
    • 2021-01-28
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 2017-12-21
    • 2021-06-13
    相关资源
    最近更新 更多