我有一个闪亮的应用程序,它有一个 ui.R、server.R 和 global.R。app 目录(名称 = 破折号)包含数据集所在的文件夹“data”。此外,此应用程序文件夹位于项目的工作目录中。在 global.RI 中读取数据为:
dash <- read.table("data/ntraj1acc.txt", sep=",", header=T)
Run Code Online (Sandbox Code Playgroud)
这个应用程序运行良好。现在,我试图将它嵌入到 ioslides 演示文稿中,否则效果很好。rmarkdown 网站外部应用程序部分中的示例在我的演示中也很完美。但是当我替换system.file我的应用程序的路径时,我收到错误:
No Shiny application exists at the path ""
Run Code Online (Sandbox Code Playgroud)
这是我替换路径的方法:
shinyAppDir(
system.file("dash", package="shiny"),
options=list(
width="100%", height=700
)
)
Run Code Online (Sandbox Code Playgroud)
错误发生后,我尝试了以下操作:
shinyAppDir(
"C:/Users/durraniu/Documents/Trajectory-one/dash",
options=list(
width="100%", height=700
)
)
Run Code Online (Sandbox Code Playgroud)
但是后来我遇到了一个新错误:
object 'dash' not found
Run Code Online (Sandbox Code Playgroud)
这意味着它没有解析 global.R。
我该如何解决这个问题?
我使用以下 rmarkdown 块成功地将应用程序嵌入到交互式闪亮文档中:
```
shinyAppDir("D:/Documents/OneDrive/Notes/R-Explore/shiny/01-ages/",
options=list(
width="100%", height=550
)
)
```
Run Code Online (Sandbox Code Playgroud)
所有3个文件:ui.R、server.R和test.Rmd都在上面的绝对路径
system.file("dash", package="shiny")肯定行不通,它正在闪亮的包本身中寻找名为“dash”的文件夹,而该文件夹显然不存在。
此外,我们在 RMarkdown 中还有一个限制,即它不会为嵌入式 Shiny 应用程序调用 global.R,抱歉这一事实似乎并未纳入文档中。https://github.com/rstudio/rmarkdown/issues/211
最后,与常规的 Shiny 应用程序不同,在 RMarkdown 文档的嵌入式 Shiny 应用程序中,您不能假设来自 server.R 的相对路径将正确解析;这是因为许多应用程序可以在单个会话中运行,包括 RMarkdown 文档本身(这也是一个 Shiny 应用程序),因此没有办法让所有应用程序都满意。
目前,我建议您直接在 RMarkdown 文档中加载数据,并从子应用程序中假设数据已经加载 - 我相信这有效,如果我错了,请纠正我。
| 归档时间: |
|
| 查看次数: |
3871 次 |
| 最近记录: |