2017-10-06 38 views
0

所以基本上我正在嘗試做一些排序的小設置,並且一旦完成了特定的分析,我想將某個數據集導出到預定義的位置和預定義的名稱(基於之前選擇的輸入)。爲此,我使用了動作按鈕,點擊時這樣做,Write.csv使用動作按鈕

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

回答

0

有一些特定的功能閃亮對於這一點,使用downloadButtonUIdownloadHandler服務器

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") 
+0

downloadButton似乎並沒有自動保存文件,我的服務器產生在一個預先定義的位置和一個預定義的名字。這就是爲什麼我嘗試使用actionButton(或者我認爲),直到我意識到它只是第一次有效地工作。 –

+0

@DanSchmidt,根據你的評論,我假設你只在你的本地機器上這樣做,而不是使用* shiny-server *,通常這些文件是暫時的。看來你正在尋找更多的重置'actionButton',這只是'隔離'你的代碼,看到[this](https://github.com/rstudio/shiny/issues/167) –

+0

先生謝謝你的回覆以及我看到了相同的鏈接,但正如我所提到的,我無法將其納入。 –