shiny学习笔记2-下载数据

上一篇, 介绍了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博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值