Shiny R,使用 downloadButton 函数
Shiny R, Using the downloadButton function
我正在尝试弄清楚如何使用 downloadButton 将多个内容下载到一个 pdf 文件中。我在 ui 中创建了下载按钮:
downloadButton('downloadData', 'Download Data'))
我正在尝试将多个图表和表格合并到一个 pdf 文件中。我在服务器文件中有以下
output$downloadData <- downloadHandler(
filename = function() {
paste('data-', Sys.Date(), '.pdf', sep=”)
}
但我认为这将保存多个 csv 文件。我如何从
等渲染中下载多个图表和表格
output$table<-renderTable({
P.Value<- c(lev.p,bart.p,turn.p,shap.p,jar.p,linm.p)
Test.Statistic<-c(lev.s,bart.s,turn.s,shap.s,jar.s,linm.s)
df<-data.frame(P.Value,Test.Statistic)
rownames(df, do.NULL = TRUE, prefix = "row")
rownames(df) <- c("Levene Test","Bartlett Test","Turning Point Test","Shapiro-Wilk Test","Jarque Bera Test","Linear Model Constant Drift Test")
df
})
,
output$qq.line<-renderPlot({
index<-1:length(lg.ret.vec())
model<-lm((lg.ret.vec())~ index)
plot(model,which=2,main="QQ plot of the residuals",xlab="Theoretical Quantiles")
qqline(rstandard(model),col="black")
})
,
output$histogram<-renderPlot({
hist(lg.ret(),main="Histogram of log returns",xlab="Log returns")
})
仅举几例。
您需要为 downloadHandler 定义要下载的内容。见 http://www.inside-r.org/packages/cran/shiny/docs/downloadHandler
您尝试将绘图和表格下载到单个 csv 文件是什么意思?你的意思是合并数据?您可能对什么是 csv 文件感到困惑。
你可以利用 rmarkdown
来制作一份包含你所有情节的报告,here is one example。
在您的情况下,您可以使用以下 downloadHandler
(代码改编自 link):
output$downloadData <- downloadHandler(
filename = function() {
paste('report', sep = '.','html')
},
content = function(file) {
src <- normalizePath('report.Rmd')
owd <- setwd(tempdir())
on.exit(setwd(owd))
file.copy(src, 'report.Rmd')
library(rmarkdown)
out <- render('report.Rmd',html_document())
file.rename(out, file)
}
)
并在与 server.R 和 ui.R 相同的文件夹中创建一个名为 report.Rmd
的文件:
report.Rmd
---
title: "Your report"
output: html_document
---
This is your plot
```{r echo=FALSE}
index<-1:length(lg.ret.vec())
model<-lm((lg.ret.vec())~ index)
plot(model,which=2,main="QQ plot of the residuals",xlab="Theoretical Quantiles")
qqline(rstandard(model),col="black")
```
This is your histogram
```{r echo=FALSE}
hist(lg.ret(),main="Histogram of log returns",xlab="Log returns")
```
我正在尝试弄清楚如何使用 downloadButton 将多个内容下载到一个 pdf 文件中。我在 ui 中创建了下载按钮:
downloadButton('downloadData', 'Download Data'))
我正在尝试将多个图表和表格合并到一个 pdf 文件中。我在服务器文件中有以下
output$downloadData <- downloadHandler(
filename = function() {
paste('data-', Sys.Date(), '.pdf', sep=”)
}
但我认为这将保存多个 csv 文件。我如何从
等渲染中下载多个图表和表格output$table<-renderTable({
P.Value<- c(lev.p,bart.p,turn.p,shap.p,jar.p,linm.p)
Test.Statistic<-c(lev.s,bart.s,turn.s,shap.s,jar.s,linm.s)
df<-data.frame(P.Value,Test.Statistic)
rownames(df, do.NULL = TRUE, prefix = "row")
rownames(df) <- c("Levene Test","Bartlett Test","Turning Point Test","Shapiro-Wilk Test","Jarque Bera Test","Linear Model Constant Drift Test")
df
})
,
output$qq.line<-renderPlot({
index<-1:length(lg.ret.vec())
model<-lm((lg.ret.vec())~ index)
plot(model,which=2,main="QQ plot of the residuals",xlab="Theoretical Quantiles")
qqline(rstandard(model),col="black")
})
,
output$histogram<-renderPlot({
hist(lg.ret(),main="Histogram of log returns",xlab="Log returns")
})
仅举几例。
您需要为 downloadHandler 定义要下载的内容。见 http://www.inside-r.org/packages/cran/shiny/docs/downloadHandler
您尝试将绘图和表格下载到单个 csv 文件是什么意思?你的意思是合并数据?您可能对什么是 csv 文件感到困惑。
你可以利用 rmarkdown
来制作一份包含你所有情节的报告,here is one example。
在您的情况下,您可以使用以下 downloadHandler
(代码改编自 link):
output$downloadData <- downloadHandler(
filename = function() {
paste('report', sep = '.','html')
},
content = function(file) {
src <- normalizePath('report.Rmd')
owd <- setwd(tempdir())
on.exit(setwd(owd))
file.copy(src, 'report.Rmd')
library(rmarkdown)
out <- render('report.Rmd',html_document())
file.rename(out, file)
}
)
并在与 server.R 和 ui.R 相同的文件夹中创建一个名为 report.Rmd
的文件:
report.Rmd
---
title: "Your report"
output: html_document
---
This is your plot
```{r echo=FALSE}
index<-1:length(lg.ret.vec())
model<-lm((lg.ret.vec())~ index)
plot(model,which=2,main="QQ plot of the residuals",xlab="Theoretical Quantiles")
qqline(rstandard(model),col="black")
```
This is your histogram
```{r echo=FALSE}
hist(lg.ret(),main="Histogram of log returns",xlab="Log returns")
```