第一个博文讲了如何构建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
d1
ID = 1:20
y = rnorm(20)
dat = data.frame(ID,y)
})
output$head
dat= d1()
head(dat)
})
output$down1
filename = function() {
paste('Data-summary', Sys.time(), sep = '.', 'html')
},
content = function(file) {
dat = d1()
src
owd
on.exit(setwd(owd))
file.copy(src, 'rmarkdown1.Rmd', overwrite = TRUE)
library(rmarkdown)
out
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还是都有的. 可以用于自动化报表的生成.
其它相关