||
上一篇, 介绍了shiny app的创建, 包括如何上传数据, 查看数据及汇总数据.
这里我们介绍如何下载数据.
1, 生成20个随机数, 编号为1:20
2, 下载为csv格式
生成数据代码:
ID = 1:20 y = rnorm(20) dat = data.frame(ID,y)
library(shiny) library(data.table) library(shinydashboard) ui = dashboardPage( dashboardHeader(title = "如何上传数据"), dashboardSidebar( menuItem("生成数据",tabName = "a") ), dashboardBody( tabItems( tabItem(tabName = "a", tableOutput("head"), downloadButton("down1","下载数据")) ) ) ) server <- function(input, output) { d1 <- reactive({ ID = 1:20 y = rnorm(20) dat = data.frame(ID,y) }) output$head <- renderTable({ dat= d1() head(dat) }) output$down1 <- downloadHandler( filename = function() { paste("data-", Sys.time(), ".csv", sep=" ") }, content = function(file) { dat1 = d1() fwrite(dat1, file,col.names = FALSE) } ) } shinyApp(ui = ui, server = server)
注意
这里的download是一个特殊结构:
output$down1 <- downloadHandler( filename = function() { paste("data-", Sys.time(), ".csv", sep=" ") }, content = function(file) { dat1 = d1() fwrite(dat1, file,col.names = FALSE) } )
包括filename和content两部分, 第一部分是命名, 第二部分是内容.
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-4-26 16:48
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社