【问题标题】:How to make showcase mode work in rmarkdown/knitr interactive Shiny document?如何使展示模式在 rmarkdown/knitr 交互式闪亮文档中工作?
【发布时间】:2017-09-16 04:41:13
【问题描述】:

我从 this question 了解到,您可以将 shinyApp 选项设置为 showcase mode,以便在用户与您的应用程序交互时可视化(即突出显示)您的 Shiny 代码的哪些部分正在执行。

但是,当我尝试使用 knitr/R markdown 将其应用于交互式 Shiny 文档时,展示的代码无法显示。

如何使showcase mode 在交互式文档中工作?

示例:

---
title: "Showcase Mode Doesn't Work in knitr"
output:  html_document
runtime: shiny
---

See, look, no highlatable code shows up with the app:

```{r, echo=FALSE}
library(shiny)
ui <- fluidPage(
  textInput(inputId = 'textin', label = ''),
  textOutput(outputId = 'textout')
)
server <- function(input, output){
  output$textout <- renderText({input$textin})
  }
shinyApp(ui = ui, server = server, options = list(display.mode='showcase'))
```

【问题讨论】:

  • 嗨@Petr。该文件的哪一部分回答了我的问题?
  • @Petr 我知道如何在 rmarkdwon 中嵌入应用程序。我的示例应用程序做得很好。但是,我无法让展示的代码显示在文档中。您的链接中似乎根本没有解决这个问题。谢谢。
  • 我现在看到了,对不起,我误解了。你必须使用shiny::runApp(display.mode="showcase") 来可视化它。正如 gscott 所回答的那样,不在降价中。

标签: r shiny markdown rstudio knitr


【解决方案1】:

您不能为markdown 文档指定showcase mode 的原因很简单——它不存在。

Knitr(和Rmarkdown 文档)在html 页面中预渲染输出结果。在交互式html 文档的情况下,它会为您的“渲染对象”预渲染所有输出,并根据输入的指定在它们之间切换(如果我理解了 Yihui Xie 今年在 Rconf 上给出的解释)。

而在shiny 中,输出是动态生成的,因为有一个后端(您的计算机、服务器等)在输入更改时运行新代码。这就是为什么您可以打开 showcase 并看到这些东西正在发生变化并动态地重新运行。

【讨论】:

    猜你喜欢
    • 2017-09-17
    • 2016-01-11
    • 2015-07-26
    • 1970-01-01
    • 2017-07-22
    • 2016-03-25
    • 2018-02-18
    • 2015-08-24
    • 1970-01-01
    相关资源
    最近更新 更多