有了这个问题,我只对在使用Shiny应用程序时使用软件包的最佳方法有所了解。尽管与提问R-related questions的良好做法相反,这个问题并不包含代码或可重复的例子,但我希望它涉及实际和相关的问题。
我正在研究具有以下结构的modular Shiny应用程序:
server.R
- 包含一些关键功能和前几个初始图形ui.R
- 提供基本的用户界面框架data
- 包含一些未动态采购的数据文件的文件夹
list.csv
- 包含数据的示例文件...
- 其他数据文件functionsAndModules
- 包含与功能和模块相关的*.R
个文件的文件夹
functionCleanGeo.R
- 简单功能清理格式的一些数据框:cleanDataFrame <- function(data) { ... return(cleanDta) }
moduleTimeSeries.R
- 提供时间序列分析的模块,执行以下操作:
...R
- 其他模块和函数保存为*.R
个文件。我想知道的是如何处理对于上面概述的app结构最佳的加载包。特别是,我想知道:
如果在global.R
中加载库 就足够了,何时(如果有的话)可能需要在模块文件和/或{{1}之间加载库} / server.R
?
1.2。例如,当使用shinyTree
包时,我将其加载到ui.r
和server.R
中,因为我理解这是来自示例。模块和函数使用ui.R
/ dplyr
组合,是否足以在tidyr
中加载这些包?
我加载包的首选方法如下:
global.R
,它可以与上述架构一起使用吗?
答案 0 :(得分:2)
这是我的两分钱:
app.R
文件的开头,app.R
的服务器端或模块文件中声明。 fooUI
和fooServer
模块函数之外或内部声明库。两者都有效。 module*.R
文件的开头声明它们。 global.R
文件上的库不到达模块,因此它们可以运行。我的假设是它不会加载到app.R环境中。我知道global.R是从server
和ui
加载到set some configuration的共享对象。