我想在rmarkdown中嵌入两个独立的闪亮应用程序。我应该在哪里放置rmd
文件?
当我只有一个闪亮的应用程序时,我将rmd放在目录中作为闪亮的应用程序,它工作。代码如下:
```{r, echo=FALSE}
shinyAppDir(
"E:/example/shinyfolder",
options=list(
width="100%", height=550
)
)
```
但是,当我将rmd
移动到闪亮的app文件夹的上一级时,比如E:/example
,并使用我之前使用的确切绝对路径,错误说cannot open compressed file './Data/joined1.rda', probable reason 'No such file or directory'
,我的想法是将rmd
放在上层文件夹中,并引用子文件夹中的不同应用程序。有关如何修复它的想法吗?
答案 0 :(得分:1)
这可能与您在闪亮应用程序中使用相对路径有关。由于我认为joined1.rda
是一个数据文件,其中一个闪亮的应用程序试图读入,因此只要闪亮的应用文件(server.R
和ui.R
)不再存在,就无法再找到它与markdown文件位于同一文件夹中。使用相对于markdown文件路径的路径,或者使用setwd()
明确设置路径,或者在markdown文件中或app中。
假设像这样的文件夹/文件结构......
/parentDir (markdown.rmd)
/apps
/app1 (server.R, ui.R)
/app2 (server.R, ui.R)
/data (joined1.rda)
...并进一步假设您的工作目录为~/parentDir
,您可以分别使用shinyAppDir(".apps/app1")
和shinyAppDir("./apps/app2")
嵌入您闪亮的应用程序。
在闪亮的应用程序(server.R
)中,你也可以使用/data
文件夹的绝对路径(如果你真的想要使用绝对路径......),或者你使用相对路径到你的工作目录。因此,如果第二个闪亮的应用(在/app2
中)加载了/data
文件夹中的数据,则使用load("./apps/app2/data/joined1.rda")
。