2015-11-03 20 views
15

Sorun

Parlak bir uygulamada bir RMarkdown komut dosyasını eklemek ve değerlendirmek için bir yol var mı? ,Parlak Uygulamada Yeniden Değerleme Uygulaması

Metin, denklemler, kod parçalarını sahip bir uygulama inşa ediyorum() (see Shiny Gallery Markdown Ben here açıklanmıştır RMarkdown bir parlak uygulama için aramıyorum, Not, ne de parlak içinde Markdown komut arıyorum) parseller ve interaktif elemanlar. Kolaylık için, Markdown dosyalarını metin ve denklemler için kullanıyorum ve bazen arasında bir arsa olmasını istiyorum (yani, RMarkdown'da çoğu şeyi yaz). Parlak uygulama daha karmaşık olduğundan (benzersiz özelliklerini içeren shinydashboard kullanıyorum), first link'da açıklanan yaklaşımı kullanmayan bir seçeneği tercih ederim.

minimum çalışma örnek verilebilir:

R-file:

library(shiny) 

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

shinyApp(ui, server) 

ve aynı klasörde "RMarkdownFile.rmd":

This is a text 

$$ E(x) = 0 $$ 

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

Sonuç:

Shiny App

Ben rmd -File örme eğer

Hedef

Ne istiyorum çıktısı: RMarkdown HTML page

Özellikle, kod parçaları değerlendirmesini almak istiyorum (arsa şey ...), ve işlenen matematik denklemlerini almak istiyorum.

Herhangi bir fikrin var mı? @Bunk girişine Düzenlenen Çözüm

Teşekkür

, ben komuta knit ile md dosyalara tüm rmd dosyaları işlemek için seçti ve sonra ben olarak html yerine fiyat indirimlerini kullanmak (parlak uygulamasında md dosyaları dahil İkincisi denklemlerle bazı sorunlar üretti). Son olarak, includeMarkdown denklemlerin doğru görüntülendiğinden emin olmak için withMathJax içine sarılmıştır.

son kod şuna benzer:

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) 

cevap

12

Bunu örgü ve UI çalışmalıdır render düşünüyorum.

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

İyi bir fikir, bir HTML dosyası oluşturmak için 'knitr 'kullandıktan sonra' includeHTML' ile oynamaktayım. – David

+0

Ben de bunu düşünüyordum, muhtemelen uygulama yükler ve bunun yerine bunu yapmak gibi yapabilirsiniz. Bunu yapmak, belirli ortamlardaki kod parçalarını değerlendirmenizi sağlar. Bu durumda yararlı olup olmadığını bilmiyorum. – jenesaisquoi

+0

Bir soru daha var, denkleminiz doğru bir şekilde işleniyor mu? – David

İlgili konular