使用shinyAppDir在Rmarkdown中嵌入了超过1个闪亮的应用程序

时间:2015-04-19 17:32:01

标签: r shiny r-markdown shiny-server

我想在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放在上层文件夹中,并引用子文件夹中的不同应用程序。有关如何修复它的想法吗?

1 个答案:

答案 0 :(得分:1)

这可能与您在闪亮应用程序中使用相对路径有关。由于我认为joined1.rda是一个数据文件,其中一个闪亮的应用程序试图读入,因此只要闪亮的应用文件(server.Rui.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")