【问题标题】:Embedding Shiny app in knitr document在 knitr 文档中嵌入 Shiny 应用程序
【发布时间】:2014-12-08 16:13:11
【问题描述】:

我有一个闪亮的应用程序,它有一个 ui.R、server.R 和 global.R。应用程序目录(名称 = 破折号)包含数据集所在的文件夹“数据”。此外,此应用程序文件夹位于项目的工作目录中。 在 global.R 中,我将数据读取为:

dash <- read.table("data/ntraj1acc.txt", sep=",", header=T)

这个应用程序运行良好。现在,我正在尝试将其嵌入到 ioslides 演示文稿中,否则效果很好。 rmarkdown 网站上External Applications 部分中的示例在我的演示文稿中也很完美。但是当我将system.file 中的路径替换为我的应用程序时,我得到了错误:

No Shiny application exists at the path ""

这是我替换路径的方式:

shinyAppDir(
  system.file("dash", package="shiny"),
  options=list(
    width="100%", height=700
  )
)

出现错误后,我尝试了以下操作:

shinyAppDir(
  "C:/Users/durraniu/Documents/Trajectory-one/dash",
  options=list(
    width="100%", height=700
  )
)

但后来我得到了一个新的错误:

object 'dash' not found

这意味着它没有解析 global.R。

我该如何解决这个问题?

【问题讨论】:

  • 请尝试检查您是否加载了适当的 library()。请同时检查您是否将文件放在工作目录中。键入 getwd() 以查看工作目录并将文件破折号放在那里,然后运行,我认为它会工作,谢谢谢谢

标签: r shiny


【解决方案1】:

我成功地将应用程序嵌入到具有以下 rmarkdown 块的交互式闪亮文档中:

```
shinyAppDir("D:/Documents/OneDrive/Notes/R-Explore/shiny/01-ages/",
  options=list(
    width="100%", height=550
  )
) 
```

所有3个文件:ui.R、server.R和test.Rmd都在上面的绝对路径

【讨论】:

    【解决方案2】:

    system.file("dash", package="shiny") 肯定不行,那就是在闪亮的包本身内寻找一个名为“dash”的文件夹,这显然不存在。

    此外,我们在 RMarkdown 中有一个限制,它不会为嵌入式 Shiny 应用调用 global.R,很抱歉,这个事实似乎没有纳入文档。 https://github.com/rstudio/rmarkdown/issues/211

    最后,与常规 Shiny 应用程序不同,在 RMarkdown 文档的嵌入式 Shiny 应用程序中,您不能假设来自 server.R 的相对路径会正确解析;这是因为许多应用程序可以在单个会话中运行,包括 RMarkdown 文档本身(它也是一个闪亮的应用程序),所以没有办法让所有应用程序都开心。

    目前,我建议您直接在 RMarkdown 文档中加载数据,并从子应用中假设数据已经加载——我相信这可行,如果我弄错了,请纠正我。

    【讨论】:

      【解决方案3】:

      2018 年更新到这个问题:

      感谢 bookdown 包,knitr 现在能够包含 HTML 小部件、闪亮的应用程序和任意网站使用

      knitr::included_url()
      knitr::include_app()
      

      查看 bookdown book 中的文档以获取更多示例: https://bookdown.org/yihui/bookdown/web-pages-and-shiny-apps.html

      【讨论】:

        猜你喜欢
        • 2018-06-07
        • 1970-01-01
        • 1970-01-01
        • 2018-10-16
        • 2018-11-06
        • 2017-09-30
        • 1970-01-01
        • 2014-09-12
        相关资源
        最近更新 更多