RMarkdownスクリプトを光沢のあるアプリケーションに挿入(および評価)する方法はありますか? (私は、説明されているRMarkdownで光沢のあるアプリケーションを探していません ここ も、光沢のあるMarkdownスクリプトも探していません( Shiny Gallery Markdown を参照))
テキスト、方程式、コードチャンク、プロット、インタラクティブな要素を含むアプリケーションを構築しています。便宜上、テキストと方程式にMarkdownファイルを使用し、その間にプロットを配置したいと考えています(つまり、RMarkdownにほとんどのものを書き込みます)。光沢のあるアプリはより複雑なので(私はshinydashboard
を使用しており、そのユニークな機能の多くを使用しています)、 最初のリンク で説明されているアプローチを使用しないオプションを好みます。
最小限の実例は次のとおりです。
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))
```
具体的には、コードチャンクの評価(何かをプロットする...)を取得し、レンダリングされた数式を取得します。
何か案は?
@Bunkの入力のおかげで、コマンドrmd
を使用してすべてのmd
ファイルをknit
ファイルにレンダリングし、md
ファイルを光沢のあるアプリ(HTMLの代わりにmarkdownを使用しています。後者は方程式に問題が発生したためです)。最後に、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)
私はそれを編み、UIをレンダリングすることでうまくいくと思います。
library(shiny)
library(knitr)
ui <- shinyUI(
fluidPage(
uiOutput('markdown')
)
)
server <- function(input, output) {
output$markdown <- renderUI({
HTML(markdown::markdownToHTML(knit('RMarkdownFile.rmd', quiet = TRUE)))
})
}
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)