Рендеринг выводов html из r markdown в блестящем приложении - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь использовать r markdown для создания HTML-документа для презентации. Теперь, когда я делаю это с помощью автономного, который, кажется, работает нормально. Но когда я использую его в блестящем приложении, которое, кажется, не работает. До сих пор я использовал это в UI

includeHTML("mkslides.html")

И на сервере использовал это для рендеринга уценки.

out <- render('mkslides.Rmd')

Уценка, кажется, отображается, когда я вижу консоль во время загрузки блестящего приложения. Но все, что я вижу, это HTML-файл без css и js. Как я могу это исправить?

1 Ответ

0 голосов
/ 16 мая 2019

Я не на 100% уверен в вашей цели, поэтому постараюсь обратиться к двум пунктам выше.

  1. Отображение документов HTML в формате ShinyApp

Это довольно просто, все, что вам нужно сделать, это использовать includeHTML в вашей UI.R части вашего ShinyApp, серверный компонент не требуется.

http://shiny.rstudio.com/gallery/including-html-text-and-markdown-files.html

Примечание: includeHTML не отображает ваш файл *.Rmd.

Рендеринг файла .Rmd в ShinyApp

Для этого требуется knit и markdownToHTML, см. Приведенную ниже ветку.

RMarkdownв блестящем приложении


Пример кусков кода

Пример. Файл RMD

---
title: "An example Knitr/R Markdown document"
output: html_document
---


{r chunk_name, include=FALSE}
x <- rnorm(100)
y <- 2*x + rnorm(100)
cor(x, y)
{r scatterplot, fig.width=8, fig.height=6}
plot(x,y)

Выше сохранены как: test_presentation.Rmd и knit как test_presentation.html

1.Включите файл HMTL в Shiny

library(shiny)

ui <- shinyUI(
  fluidPage(
    includeHTML('test_presentation.html')
  )
)
server <- function(input, output) {
}

shinyApp(ui, server)

2.Визуализируйте вышеуказанный файл *.Rmd в Shiny

Код, полученный в форме: https://stackoverflow.com/a/33500524/5996972

library(shiny)
library(knitr)

ui <- shinyUI(
  fluidPage(
    uiOutput('markdown')
  )
)
server <- function(input, output) {
  output$markdown <- renderUI({
    HTML(markdown::markdownToHTML(knit('test_presentation.rmd', quiet = TRUE)))
  })
}

shinyApp(ui, server)
...