2015-11-03 15 views
15

問題

光沢のあるアプリケーションにRMarkdownスクリプトを挿入(および評価)する方法はありますか? (注、私はhereを説明しRMarkdownで光沢のあるアプリケーションを捜しているわけではない、また私は光沢のあるに値下げスクリプトのために(see Shiny Gallery Markdown)探しています)光沢のあるアプリケーションでのRMarkdown

を私は、テキスト、方程式、コードチャンクを持つアプリケーションを構築していますプロット、およびインタラクティブな要素です。便宜上、私はMarkdownファイルをテキストと方程式に使用し、その間にプロットを作成したい(つまり、RMarkdownでほとんどのものを書きます)。 shiny-appはより複雑なので(私は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 -fileニット場合は出力されます。具体的に RMarkdown HTML page

を、私は、コードのチャンク(プロット何かを...)の評価を取得したいです私はレンダリングされた数式を取得したい。

アイデア?

編集ソリューション

@Bunkの入力のおかげで、私はコマンドknitmdファイルにすべてのrmdファイルをレンダリングすることを選択した後、(私はとHTMLの代わりにマークダウンを使用し、光沢のあるアプリでmdファイルを含めます後者は方程式にいくつかの問題を生じた)。最後に、includeMarkdownwithMathJaxにラップされ、方程式が正しく表示されます。

最終的なコードは次のようになります。

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) 

答えて

12

私はそれを編みと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) 
+0

いいえ、HTMLファイルを作成するために 'knitr'を使用した後、' includeHTML'で遊んでいました。 – David

+0

私はそれについても考えていました。おそらく、アプリケーションがロードされ、代わりにレンダリングされる可能性があります。これにより、特定の環境でコードチャンクを評価することができます。この場合、それが有用かどうかは分かりません。 – jenesaisquoi

+0

さらにもう1つ質問がありますが、あなたの数式は正しくレンダリングされますか? – David

関連する問題