问题描述
我正在尝试创建一个闪亮的应用程序,其中用户从下拉菜单中选择一个R Markdown文件,然后将该文件呈现在应用程序中,并输出该文件,然后弹出pdf文件。
制作下拉菜单没有问题,但是我在如何在脚本的服务器端编写所有代码方面很挣扎。
如何从下拉菜单中获取Shiny应用程序以渲染R markdown文件?任何帮助表示赞赏。
解决方法
如评论中所述:
library(shiny)
shinyApp(
ui = fluidPage(
selectInput("report","Report",choices=c('Report1.Rmd','Report2.Rmd')),downloadButton("report","Generate report")
),server = function(input,output) {
output$report <- downloadHandler(
# For PDF output,change this to "report.pdf"
filename = "report.html",content = function(file) {
# Set up parameters to pass to Rmd document
params <- list(n = 1)
rmarkdown::render(input$report,output_file = file,params = params,envir = new.env(parent = globalenv())
)
}
)
}
)
.Rmd文件应位于工作目录中。
例如:Report1.Rmd
title: "Dynamic report 1"
output: html_document
params:
n: NA
---
```{r}
# The `params` object is available in the document.
params$n
```
A plot1 of `params$n` random points.
```{r}
plot(rnorm(params$n),rnorm(params$n))
```