gpt4 book ai didi

Shiny 应用程序中的 RMarkdown

转载 作者:行者123 更新时间:2023-12-03 10:28:18 25 4
gpt4 key购买 nike

问题

有没有办法在 Shiny 的应用程序中插入(和评估)RMarkdown 脚本。 (注意,我不是在寻找 RMarkdown 中解释的 Shiny 应用程序 here ,我也不是在寻找 Shiny 的 Markdown 脚本( see Shiny Gallery Markdown ))

我正在构建一个包含文本、方程式、代码块、绘图和交互式元素的应用程序。为方便起见,我将 Markdown 文件用于文本和方程式,并且有时希望在两者之间绘制一个图(即在 RMarkdown 中编写大部分内容)。由于 Shiny 的应用程序更复杂(我使用 shinydashboard 包括它的许多独特功能),我更喜欢不使用 first link 中描述的方法的选项。 .

一个最小的工作示例是:

R文件:

library(shiny)

ui <- shinyUI(
fluidPage(
includeMarkdown("RMarkdownFile.rmd")
)
)
server <- function(input, output) {}

shinyApp(ui, server)

和“RMarkdownFile.rmd”在同一个文件夹中:
This is a text

$$ E(x) = 0 $$

```{r, eval = T}
plot(rnorm(100))
```

结果:

Shiny App

目标

如果我编织 rmd,我想要的是输出-文件:
RMarkdown HTML page

具体来说,我想获得代码块的评估(绘制一些东西......),并且我想获得渲染的数学方程。

有任何想法吗?

编辑解决方案

感谢@Bunk的输入,我选择渲染所有 rmd文件到 md使用命令 knit 的文件然后包括 md Shiny 应用程序中的文件(我使用markdown而不是html,因为后者产生了一些方程式问题)。最后, includeMarkdown包裹在 withMathJax 中以确保方程的正确显示。

最终代码如下所示:
library(shiny)
library(knitr)

rmdfiles <- c("RMarkdownFile.rmd")
sapply(rmdfiles, knit, quiet = T)

ui <- shinyUI(
fluidPage(
withMathJax(includeMarkdown("RMarkdownFile.md"))
)
)
server <- function(input, output) { }

shinyApp(ui, server)

最佳答案

根据@elevendollar 的要求,这就是我最终使用的:

library(shiny)
library(knitr)

rmdfiles <- c("RMarkdownFile.rmd")
sapply(rmdfiles, knit, quiet = T)

ui <- shinyUI(
fluidPage(
withMathJax(includeMarkdown("RMarkdownFile.md"))
)
)
server <- function(input, output) { }

shinyApp(ui, server)

关于 Shiny 应用程序中的 RMarkdown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33499651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com