使用相同数据的多个Shiny应用程序

时间:2015-08-18 11:47:25

标签: r shiny

我想开发一堆Shiny应用程序,每个应用程序都在处理(和编辑)同一组数据。这是否可行,如果是,那该项目应该如何构建?

1个闪亮的应用

我习惯构建闪亮应用的方式如下:
enter image description here

2+闪亮的应用

有没有办法引用数据的其他位置,或以这种方式在根文件夹中存储应用程序:

enter image description here

每个应用使用位于数据文件夹中的数据。 对于每个应用程序,ui.R,server.R和global.R都存储在'app_i'文件夹中。

据我所知,ui.R,server.R和global.R应始终位于项目的根目录,这使得无法在同一数据集上使用多个应用程序。

提前感谢您对此的看法,以及分享最佳做法。

此致

1 个答案:

答案 0 :(得分:6)

ui.Rserver.Rglobal.R必须位于您应用的根目录中,但其中任何一个都可以访问根目录以外的文件。你在这里几乎没有选择:

  • 访问文件时使用数据目录的绝对路径

    DATA_PATH <- "/path/to/data/"
    
  • 使用相对路径

    DATA_PATH <- file.path(getwd(), "../data/")
    
  • 使用符号链接

    .
    ├── app1
    │   ├── data -> /path/to/data
    │   ├── server.R
    │   └── ui.R
    ├── app2
    │   ├── data -> /path/to/data
    │   ├── server.R
    │   └── ui.R
    ├── app3
    │   ├── data -> /path/to/data
    │   ├── server.R
    │   └── ui.R
    └── data
        ├── bar.csv
        └── foo.csv
    
  • 对于只读数据集,您可以创建仅数据包using standard R tools

  • 如果必须由多个应用程序以安全的方式写入数据,请使用数据库作为后端。它可以是基于文件的解决方案,如SQLite或适当的服务器。
  • 使用轻量级网络服务来获取/更新您的数据