【问题标题】:How to run scripts by selecting them from a dropdown menu in R Shiny app?如何通过从 R Shiny 应用程序的下拉菜单中选择脚本来运行脚本?
【发布时间】:2020-12-20 18:53:45
【问题描述】:

我正在尝试创建一个闪亮的应用程序,用户从下拉菜单中选择一个 R Markdown 文件,然后该文件在应用程序中呈现,该文件的输出,一个 pdf 文件弹出。

我在制作下拉菜单时没有遇到任何问题,但我正在为如何在脚本的服务器端编写所有这些内容而苦苦挣扎。

如何让 Shiny 应用程序从下拉菜单中呈现 R markdown 文件?任何帮助表示赞赏。

【问题讨论】:

  • 这可能会有所帮助:shiny.rstudio.com/articles/generating-reports.html,您只需将 report.Rmd 替换为您选择的文件
  • 我猜如果我用输入函数不断改变的是路径文件,我将不得不改变 rmarkdown::render(tempReport, output_file = file, params = params , envir = new.env(parent = globalenv() 脚本的一部分变成更像这样的东西?rmarkdown::render( input$variable, output_file = file, params = params, envir = new.env(parent = globalenv()

标签: r shiny r-markdown shinyapps shiny-reactivity


【解决方案1】:

如 cmets 中所述:

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))
```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 2015-01-18
    • 2013-10-25
    • 1970-01-01
    相关资源
    最近更新 更多