2015-11-03 27 views
15

Problem

Czy istnieje sposób wstawienia (i oceny) skryptu RMarkdown w błyszczącej aplikacji. (Uwaga, nie szukam błyszczące stosowania w RMarkdown że jest wyjaśnione here, ani ja szukam skryptów Przecena w błyszczące (see Shiny Gallery Markdown))RMarkdown w aplikacji Shiny Application

buduję aplikację, która ma tekstowe, równania kodowej kawałki, działki i elementy interaktywne. Dla wygody używam plików Markdown dla tekstu i równań i chciałbym mieć wykres czasami pomiędzy (tj. Zapisywanie większości w RMarkdown). Ponieważ błyszcząca aplikacja jest bardziej złożona (używam shinydashboard, w tym wiele jej unikalnych cech), wolałbym opcję, która nie używa podejścia opisanego w first link.

minimum przykład wykonania, może być:

R plików

library(shiny) 

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

shinyApp(ui, server) 

i "RMarkdownFile.rmd" w tej samej katalogu:

This is a text 

$$ E(x) = 0 $$ 

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

Wynik:

Shiny App

docelowa

Co chcę mieć jest wyjście jeśli dziać się rmd -file: RMarkdown HTML page

szczególności chcę, aby uzyskać ocenę fragmentów kodu (wykres coś ...) i chcę uzyskać renderowane równania matematyczne.

Wszelkie pomysły?

Edited Rozwiązanie

Dzięki wejściu @Bunk wybrałem do renderowania wszystkich rmd pliki md plików za pomocą polecenia knit a następnie obejmować md pliki w błyszczące aplikacji (używam przecen zamiast html jako ten ostatni powodował pewne problemy z równaniami). Wreszcie, includeMarkdown jest zawijany w withMathJax, aby zapewnić prawidłowe wyświetlanie równań.

Ostateczny kod wygląda następująco:

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) 

Odpowiedz

12

myślę drutach go i renderowania UI powinno działać.

+0

Dobrze, po prostu bawiłem się z 'includeHTML' po użyciu' knitr' do utworzenia pliku HTML. – David

+0

Myślałem o tym również, prawdopodobnie można renderować podczas ładowania aplikacji i zrobić to zamiast tego. Umożliwia to ocenę fragmentów kodu w określonych środowiskach. Nie wiem, czy jest to przydatne w tym przypadku. – jenesaisquoi

+0

Jeszcze jedno pytanie, czy równanie renderuje się prawidłowo? – David