2015-11-03 7 views
15

Problem

Gibt es eine Möglichkeit, ein RMarkdown-Skript in eine glänzende Anwendung einzufügen (und auszuwerten). (Beachten Sie, ich bin nicht für eine glänzende Anwendung in RMarkdown suchen, here erklärt, noch bin ich auf der Suche nach Markdown-Skripte in glänzend (see Shiny Gallery Markdown))RMarkdown in glänzender Anwendung

Ich baue eine Anwendung, die Text hat, Gleichungen, Code-Stücke, Diagramme und interaktive Elemente. Aus praktischen Gründen benutze ich Markdown-Dateien für den Text und die Gleichungen und möchte manchmal eine Grafik dazwischen haben (d. H. Die meisten Sachen in RMarkdown schreiben). Da die shiny-App komplexer ist (ich verwende shinydashboard einschließlich vieler ihrer einzigartigen Funktionen), würde ich eine Option bevorzugen, die nicht den in der first link beschriebenen Ansatz verwendet.

ein Mindestarbeits Beispiel wäre:

R-Datei:

library(shiny) 

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

shinyApp(ui, server) 

und "RMarkdownFile.rmd" im selben Ordner:

This is a text 

$$ E(x) = 0 $$ 

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

Ergebnis:

Shiny App

Ziel

Was ich haben will, ist der Ausgang, wenn ich die rmd -datei stricken: RMarkdown HTML page

Insbesondere möchte ich die Auswertung der Code-Stücke bekommen (Grundstück etwas ...), und ich möchte die gerenderten mathematischen Gleichungen erhalten.

Irgendwelche Ideen?

Edited Lösung

Dank an den Eingang des @Bunk, wählte ich alle rmd Dateien md Dateien mit dem Befehl knit zu machen und dann bin die md Dateien in der glänzenden app (I Abschlag anstelle von HTML als letzteres erzeugte einige Probleme mit Gleichungen). Zuletzt wird die includeMarkdown in withMathJax verpackt, um die korrekte Darstellung der Gleichungen sicherzustellen.

Der letzte Code sieht wie folgt aus:

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) 

Antwort

12

Ich denke, Stricken es und machen eine UI funktionieren sollte.

+0

Gute Idee, ich spielte gerade mit 'includeHTML' herum, nachdem ich' 'knitr'' verwendet hatte, um eine HTML-Datei zu erstellen. – David

+0

Ich habe darüber auch nachgedacht, Sie könnten wahrscheinlich als die Anwendung laden und das stattdessen tun. Dadurch können Sie die Code-Chunks in bestimmten Umgebungen auswerten. Ich weiß nicht, ob das in diesem Fall nützlich ist. – jenesaisquoi

+0

Noch eine Frage, rendert Ihre Gleichung richtig? – David

Verwandte Themen