如何通过从 R Shiny 应用程序的下拉菜单中选择脚本来 运行 脚本?
How to run scripts by selecting them from a dropdown menu in R Shiny app?
我正在尝试创建一个闪亮的应用程序,用户从下拉菜单中选择一个 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))
```
我正在尝试创建一个闪亮的应用程序,用户从下拉菜单中选择一个 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))
```