如何使用Shiny和Rmarkdown制作交互式ioslides演示文稿
问题原因与解决方案
默认配置下knit生成ioslides时,只会将Shiny应用的UI界面静态渲染为页面元素,不会关联后端交互逻辑,自然无法响应用户操作,你只需要补充运行时配置、调整启动方式即可:
1. 补充YAML运行时配置
在Rmd文件顶部的YAML元数据区添加runtime: shiny,声明该文档需要依托Shiny运行时加载交互组件,修改后的YAML配置如下:
--- runtime: shiny output: ioslides_presentation ---
2. 调整启动方式
Shiny交互演示文稿不能通过普通编织生成静态HTML文件运行,你需要使用以下两种方式之一启动:
- 在RStudio中打开Rmd文件后,点击编辑器顶部的「运行文档」按钮,而非「编织」按钮
- 控制台执行命令:
rmarkdown::run("你的文件名.Rmd")
完整可运行示例
--- runtime: shiny output: ioslides_presentation --- ## 正常交互的App ```{r echo=FALSE, message=FALSE, warning=FALSE} library(shiny) ui = fluidPage( numericInput("n", "How old are you?", value = 1), verbatimTextOutput("res") ) server = function(input, output, session) { output$res <- renderPrint({ paste0("Your age is: ", input$n) }) } shinyApp(ui, server)
> 注意:Shiny交互演示文稿依赖R运行环境,无法脱离R直接打开导出的静态HTML文件使用交互功能。 内容的提问来源于stack exchange,提问作者bird
相关产品推荐
相关产品推荐

