如何使用Shiny和R Markdown制作交互式的isoslides演示文稿?

4

当我在 .Rmd 文件中制作一个 Shiny 应用程序来制作一个 isoslides 演示文稿时,该应用程序会“表现”为静态的 html 页面(不支持交互)。

例如,在 Rmd 文件中使用以下代码将生成一个静态的 html 演示文稿,你无法进行交互操作。

---
output: ioslides_presentation
---

## Useless App

```{r echo=FALSE, message=FALSE, warning=FALSE}
library(shiny)

ui = fluidPage(
        numericInput("n", "How old are you?", value = 1)
)

server = function(input, output, session) {
        
}

shinyApp(ui, server)

我错过了什么?

1
你收到了这个消息吗?(附链接:https://i.imgur.com/DvNzXg2.png) - rawr
@rawr 我没有看到任何消息 =) - bird
2个回答

2
以上答案不准确。
对于您的YAML头部。
---
output: ioslides_presentation
runtime: shiny
---

如果您想嵌入您的闪亮应用程序(假设它是一个单独的文件):

```{r, echo = FALSE, message=F, warning=FALSE}
shinyAppFile(
  "FileMyAppIsIn/app.R",
  options = list(width = "100%", height = 700)
)
``

2
很遗憾,你不能这样做。
最接近的方法是将你的Shiny应用部署到某个地址,无论是在网络上还是本地,在幻灯片中使用iframe嵌入它。
例如:
---
output: ioslides_presentation
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```

## Slide with plot

```{r}
plot(cars)
```

## Slide with Shiny app in iframe

<iframe width = "560" height = "315" src="https://nsgrantham.shinyapps.io/tidytuesdayrocks/"></iframe>

enter image description here

如果您想使用本地应用程序来完成此操作,您需要在单独的 R 会话中部署您的应用程序,然后从浏览器中获取本地地址(例如:http://111.0.0.1:1234/),并将其粘贴为 iframe 的源。

太棒了!我必须在浏览器中打开它才能工作,这完全没问题。还测试了一下Quarto演示文稿! - brucezepplin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接