上一篇, 介绍了shiny app的创建, 包括如何上传数据, 查看数据及汇总数据.
这里我们介绍如何下载数据.
流程
- 1, 生成20个随机数, 编号为1:20
- 2, 下载为csv格式
生成数据代码:
ID = 1:20
y = rnorm(20)
dat = data.frame(ID,y)
shiny代码
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两部分, 第一部分是命名, 第二部分是内容.
其它相关
shiny学习笔记1—上传数据
shiny学习笔记2-下载数据 - CSDN博客
shiny学习笔记3–利用rmarkdown生成html报告 - CSDN博客