见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 是一个 reactive 或 reactiveValue,你应该调用 csv_write() 而不是 csv_write。