【发布时间】:2023-03-06 03:03:01
【问题描述】:
我对 R 降价相当陌生。我已经构建了一个应用程序,该应用程序需要用户提供多个输入来生成一个表,然后可以将其保存在本地。 我现在被要求实现一种报告来列出用户插入的所有变量(在一种格式化的文档中),以便在生成表格之前可以查看所有设置并在出现错误时更改它们。
为了避免主要的 UI 重组,我考虑使用 r markdown 文档并将其可视化在模式中。我的问题是 rmarkdown::render 呈现到输出,而 bs_modal 将参数正文作为字符 (HTML) 变量。
有没有办法使这项工作?还是有更好的方法来实现这一点?
一个最小的例子:
我的.Rmd
---
title: "Dynamic report"
output:
html_document: default
pdf_document: default
params:
n : NA
---
A plot of `r params$n` random points.
```{r, echo=FALSE}
plot(rnorm(params$n), rnorm(params$n))
```
我的App.R
library(shiny)
library(bsplus)
library(rmarkdown)
shinyApp(
ui = fluidPage(
selectInput(
inputId = "numb",
label = "Label with modal help",
choices = 50:100
),
actionButton(inputId = "mysheet",
label = "Open modal") %>% bs_attach_modal(id_modal = "modal1"),
textOutput("result")
),
server = function(input, output) {
observeEvent(input$mysheet, {
params <- input$numb
md_out <-
rmarkdown::render(
"report.Rmd",
params = params,
envir = new.env(parent = globalenv())
)
bs_modal(
id = "modal1",
title = "Equations",
body = md_out,
size = "medium"
)
})
output$result <- renderText({
paste("You chose:", input$numb)
})
}
)
【问题讨论】:
标签: r shiny r-markdown