【问题标题】:R: Can I include an R markdown file in a shiny ui.R file?R:我可以在闪亮的 ui.R 文件中包含 R 降价文件吗?
【发布时间】:2014-12-10 09:12:30
【问题描述】:

我参考http://shiny.rstudio.com/gallery/including-html-text-and-markdown-files.html 的代码示例。就我而言,我想包含 R markdown 文件而不是 markdown。

以下是我的ui.R代码

library(markdown)
shinyUI(fluidPage(

    titlePanel("Tourist expenditure for the year 2012 in Malta"),

    fluidRow(
        column(2,
               checkboxGroupInput("id1", "Analyse by",
                                  c("Sex" = "1",
                                    "Age Group" = "2")
         )),
        column(6,
               h4('You entered'),
               verbatimTextOutput("oid1")
        ),
        column(4,
               includeMarkdown("intro.Rmd")
        )
    )
))

我的问题是 intro.Rmd 在嵌入到 shinyUI 时没有编译,但在我选择 Knit HTML 选项时按预期工作。

有没有办法可以直接插入Rmd源文件。

谢谢。

【问题讨论】:

  • 尝试将其更改为intro.md
  • 您遇到错误还是空白?你确定它在正确的文件夹中吗?
  • @Elin:当我将 .Rmd 重命名为 .md 时,我得到了未编译的源代码。当我包含来自 Knitr (index.html) 的输出时,我得到了正确的结果,但得到了一个烦人的 标记。 Tou 可以在chribonn.shinyapps.io/devdataprod-016 查看项目的输出。谢谢。
  • 更新:在指定yaml指令keep_md:yes后,@Elin的推荐有效。我仍然相信最好的解决方案是让闪亮能够解析 .Rmd,因为这是每次都会修改的源。
  • 如果该文件每次都被修改,您应该使用 rmarkdown::render("myfile.Rmd") 并将包含包含在内,但我也不认为它是静态文件最有意义那个案子。我认为在架构上,在服务器端执行rmarkdown::render("myfile.Rmd") 可能更有意义。

标签: r shiny knitr


【解决方案1】:

我过去也遇到过类似的问题,并且知道两种解决方案:

  1. 使用您提到的函数预编译 .Rmd 文件并包含 markdown 或 HTML。

  2. 从 server.R 文件中的 shiny 调用 knitr(如果文档由于闪亮的应用程序而更改),然后使用 includeHTML() 或类似函数包含已编译的 HTML/markdown 代码。

【讨论】:

  • 我做了第二个选项,但是当我使用 includeHTML() 时,datatables 不会在 Shiny 中呈现已编译 HTML 中的表格,但在 Web 浏览器中它可以工作。你能帮忙吗?
  • 您的意思是数据表不会在预览窗口中呈现 html,而是在您在浏览器中查看应用程序时呈现?如果是这样,我会称之为成功。 RStudio 的预览浏览器并不总是能正确处理自定义 CSS 和 Javascript。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-09
  • 2017-11-03
  • 1970-01-01
  • 1970-01-01
  • 2015-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多