Problema
C'è un modo per inserire (e valutare) uno script RMarkdown in un'applicazione lucida. (Nota, io non sono alla ricerca di un'applicazione lucido in RMarkdown che si spiega here, né sono alla ricerca di script Markdown a lucido (see Shiny Gallery Markdown))RMarkdown in Shiny Application
sto costruendo un'applicazione che ha testo, equazioni, code-pezzi, grafici e elementi interattivi. Per comodità, utilizzo i file Markdown per il testo e le equazioni e vorrei avere una trama a volte in mezzo (ad esempio scrivere la maggior parte delle cose in RMarkdown). Dato che l'app lucida è più complessa (io uso shinydashboard
includendo molte delle sue caratteristiche uniche), preferirei un'opzione che non utilizzasse l'approccio descritto nello first link.
Un esempio di lavoro minimo sarebbe:
R-file:
library(shiny)
ui <- shinyUI(
fluidPage(
includeMarkdown("RMarkdownFile.rmd")
)
)
server <- function(input, output) {}
shinyApp(ui, server)
e "RMarkdownFile.rmd" nella stessa cartella:
This is a text
$$ E(x) = 0 $$
```{r, eval = T}
plot(rnorm(100))
```
Risultato:
target
Quello che voglio avere è l'uscita se I maglia del rmd
-file:
In particolare, voglio ottenere la valutazione delle code-pezzi (trama qualcosa ...), e voglio ottenere le equazioni matematiche renderizzate.
Qualche idea?
cura soluzione
Grazie all'ingresso di @Bunk, ho scelto di rendere tutti i file rmd
md
file con il comando knit
e quindi includere i file md
nella app lucida (io uso Markdown invece di html come quest'ultimo ha prodotto alcuni problemi con le equazioni). Infine, lo includeMarkdown
viene fornito con withMathJax
per garantire la corretta visualizzazione delle equazioni.
Il codice finale è simile al seguente:
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)
Buona idea, stavo giocando con 'includeHTML' dopo aver usato' knitr' per creare un file HTML. – David
Ci stavo pensando anche a questo, probabilmente potresti eseguire il rendering mentre l'applicazione si carica e lo fa invece. Ciò consente di valutare i blocchi di codice in ambienti specifici. Non so se sia utile in questo caso. – jenesaisquoi
Un'altra domanda, la tua equazione funziona correttamente? – David