育种数据分析之放飞自我分享 http://blog.sciencenet.cn/u/yijiaobai 关注:生物统计,数量遗传,混合线性模型,生物信息,R,Perl,Python,GWAS,GS相关方法,文章及代码

博文

shiny学习笔记3--利用rmarkdown生成html报告

已有 2929 次阅读 2019-2-18 20:24 |个人分类:R语言|系统分类:科研笔记

第一个博文讲了如何构建shiny app, 如何上传数据.

第二个博文讲了如何利用shiny app, 下载数据.

这里我们利用下载报表, 使用的是rmarkdown格式. 功能很强大.

流程

1, 生成数据代码:

ID = 1:20
y = rnorm(20)
dat = data.frame(ID,y)

2, 生成一个rmarkdown文件, head, summary, plot, 以及内容.
3, 下载报表

shiny 代码

app.R

library(shiny)
library(data.table)
library(shinydashboard)

ui = dashboardPage(
    dashboardHeader(title = "如何上传数据"),
    dashboardSidebar(
        menuItem("生成数据",tabName = "a")
    ),
    dashboardBody(
        tabItems(
            tabItem(tabName = "a",
                    tableOutput("head"),
                    downloadButton("down1","下载rmarkdown的html报表"))

        )
    )
)

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-summary', Sys.time(), sep = '.', 'html')
        },
        content = function(file) {
            dat = d1()
            src <- normalizePath('rmarkdown1.Rmd')
            owd <- setwd(tempdir())
            on.exit(setwd(owd))
            file.copy(src, 'rmarkdown1.Rmd', overwrite = TRUE)
            library(rmarkdown)
            out <- render('rmarkdown1.Rmd', html_document())
            file.rename(out, file)
        })


}
shinyApp(ui = ui, server = server)

rmarkdown1.Rmd
将其放在app.R相同的文件夹中.

# First title

> 引用

## 二级标题

```{r}
1+12
```

## head
```{r}
head(dat)
```

## summary
```{r}
summary(dat)
```

## plot
```{r}
plot(dat)
```

shiny运行界面

在这里插入图片描述
下载的html界面:

在这里插入图片描述
可以看到, 虽然不支持中文, 但是该有的markdown还是都有的. 可以用于自动化报表的生成.



http://blog.sciencenet.cn/blog-2577109-1162890.html

上一篇:shiny学习笔记2-下载数据
下一篇:R语言与独孤九剑

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2021-1-25 10:20

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部