如何通过从R Shiny应用程序的下拉菜单中选择脚本来运行脚本?

问题描述

我正在尝试创建一个闪亮的应用程序,其中用户从下拉菜单中选择一个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))
```