2017-07-25 72 views
1

当我用它来检索我的报告时,我的下载按钮显示错误。该按钮的输出ID是downloadData。什么似乎是错误?SHINY中的下载按钮出错

output$downloadData <- downloadHandler(
filename = function() { 
    paste('Final Report', '.csv', sep='') 
    }, 
content = function(file){ 
     write.csv(csv_write,row.names=FALSE, na="") 
}) 

回答

1

the documentation

content = function(file) { 
    write.csv(data, file) 
} 

所以还必须将文件参数传递给write.csv功能。假设你要写入的数据被称为csv_write,你应该做的:

write.csv(csv_write, file, row.names=FALSE, na="") 

工作实例

library(shiny) 

csv_write = data.frame(a=c(1,2,3),b=c(1,2,3)) 

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

    output$downloadData <- downloadHandler(
    filename = function() { 
     paste('Final Report', '.csv', sep='') 
    }, 
    content = function(file){ 
     write.csv(csv_write,file,row.names=FALSE, na="") 
    }) 


}) 

ui <-shinyUI(fluidPage(

     downloadButton('downloadData', 'Download data') 

)) 

shinyApp(ui,server) 

注意,是csv_write是一种反应或reactiveValue,你应该叫csv_write ()而不是csv_write。

+0

我正在下载的文件是以downloadData的名称而不是最终报告。该文件也不是csv格式 –

+0

我不确定你的意思是什么? – Florian

+0

上面的代码中的错误是,我下载的文件不是最终报告的名称,扩展名不在csv中。你为什么认为这个问题存在? –

0

下面是应该为你假设csv_write工作的代码是你想下载的数据集:

output$downloadData <- downloadHandler(
     "Final_Report.csv", content = function(file) { 
     write.csv(csv_write, file, row.names=FALSE, na="") 
     } 
    ) 

和首先是你得到了什么样的错误?

+0

我正在下载的文件是以downloadData的名称而不是最终报告。该文件也不是以csv格式 –