我有一个闪亮的应用程序,它有一个ui.R,server.R和global.R。 app目录(name = dash)包含文件夹' data'数据集所在的位置。此外,此app文件夹位于项目的工作目录中。 在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。
如何解决此问题?
答案 0 :(得分:3)
system.file("dash", package="shiny")
绝对无法正常工作,正在寻找名为&#34; dash&#34;的文件夹。在闪亮的包装本身内部,显然不存在。
另外,我们在RMarkdown中有一个限制,它没有为嵌入式Shiny应用程序调用global.R,遗憾的是这个事实似乎没有进入文档。 https://github.com/rstudio/rmarkdown/issues/211
最后,与普通的Shiny应用程序不同,在RMarkdown文档的嵌入式Shiny应用程序中,您无法假设来自server.R的相对路径将正确解析;这是因为许多应用程序可以在单个会话中运行,包括RMarkdown文档本身(也是一个Shiny应用程序),所以没有办法让所有这些应用程序都满意。
目前,我建议您直接在RMarkdown文档中加载数据,并从子应用程序中假设数据已经加载 - 我相信这有效,如果我弄错了,请纠正我。
答案 1 :(得分:3)
我成功地将一个应用程序嵌入到交互式闪亮文档中,其中包含以下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 :(得分:1)
2018年更新此问题:
感谢bookdown软件包,knitr现在可以使用
包含HTML小部件,Shiny应用程序和任意网站knitr::included_url()
knitr::include_app()
查看书籍簿中的文档以获取更多示例: https://bookdown.org/yihui/bookdown/web-pages-and-shiny-apps.html