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

Posted

技术标签:

【中文标题】使用 shinyAppDir 在 Rmarkdown 中嵌入超过 1 个闪亮的应用程序【英文标题】:Embed more than 1 shiny application in Rmarkdown using shinyAppDir 【发布时间】:2015-06-26 07:42:39 【问题描述】:

我想在 rmarkdown 中嵌入两个独立的闪亮应用。我应该把rmd 文件放在哪里?

当我只有一个闪亮的应用程序时,我将 rmd 作为闪亮的应用程序放在目录中,它可以工作。代码如下:

```r, echo=FALSE
shinyAppDir(
 "E:/example/shinyfolder",
  options=list(
    , height=550
  )
)

```

但是当我将rmd 移动到闪亮的应用程序文件夹的上层,比如E:/example 并使用我之前使用的确切绝对路径时,错误说cannot open compressed file './Data/joined1.rda', probable reason 'No such file or directory',我的想法是把@987654326 @ 在上层文件夹中并引用子文件夹中的不同应用程序。关于如何解决它的任何想法?

【问题讨论】:

【参考方案1】:

这可能与您在闪亮的应用程序中使用相对路径有关。由于我假设joined1.rda 是您的闪亮应用程序之一尝试读取的数据文件,因此一旦闪亮的应用程序文件(server.Rui.R)不再与您的应用程序位于同一文件夹中,它就无法再找到它降价文件。使用相对于您的降价文件路径的路径,或在降价文件或应用程序中使用setwd() 明确设置一个。

假设这样的文件夹/文件结构...

/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")

【讨论】:

以上是关于使用 shinyAppDir 在 Rmarkdown 中嵌入超过 1 个闪亮的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

ggplot2 vs cowplot,FUN 中的错误(“text”[[1L]],...):

在 spark 上使用集群和在本地使用并行操作有啥区别?

在哪里使用 CORBA 以及在哪里使用 SNMP 进行监控?

为啥在使用 unicode 时我不能在 :before :after 内容之后使用空格

在哪里使用 callable 以及在哪里使用 Runnable Interface?

在 Observable RxSwift 中使用 'asPromise()' 可以在 PromiseKit Promise 中使用吗?