【问题标题】:How to use the download button in Shiny?如何使用 Shiny 中的下载按钮?
【发布时间】:2017-07-21 11:21:35
【问题描述】:

我想使用 Shiny 中的下载按钮下载csv 文件。该文件将使用辅助 r 脚本中的参数创建。

    ###SERVER
    output$downloadData <- downloadHandler({
    filename = function() {
        paste('data-', Sys.Date(), '.csv', sep='')
      }
      content = function(file) {
        csv_write<-array(0,dim=c(length(GHI_D),15))
        csv_write<-cbind(GHI_Data$timeStamp,GHI_D,POA_OBS_T,POA_model_T,POA_model_FT,POA_OBS,DNI_model,DHI,tracking_angle,incidence_angel_T,Backtracking_angle,SunAz,SunEl,Kt,DNI,DDNI,incidence_angel,DHI_model,DHI_model_T,Eb,Eb_T)
        write.csv(csv_write,row.names=FALSE, na="")
        write.csv(csv_write,row.names=FALSE, na="")
      }
  })
    ### UI
          downloadButton('downloadData', 'Download CSV Report', style="display: block; margin: 0 auto; width: 230px;color: black;")

【问题讨论】:

  • "readr" 库中的"write_csv" 比 base r 中的 "write.csv" 快

标签: r csv shiny shinydashboard


【解决方案1】:

我认为您的代码的问题在于您试图从一个下载按钮下载两个 CSV。您有两个名为 csv_write 的变量和两个 write.csv 调用。一个最小的工作示例如下所示:

library(shiny)

server <- shinyServer(function(input, output, session) {

  output$downloadData <- downloadHandler(
    filename = function() { 
      paste("dataset-", Sys.Date(), ".csv", sep="")
    },
    content = function(file) {
      write.csv(mtcars, file)
    })
})

ui <- shinyUI(fluidPage(
    downloadButton('downloadData', 'Download data')
))

shinyApp(ui=ui,server=server)

【讨论】:

    猜你喜欢
    • 2017-08-09
    • 2017-12-31
    • 2021-09-25
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多