【发布时间】:2018-08-21 19:37:34
【问题描述】:
我想一般地生成仪表板菜单项,以允许在给定的 Shiny 应用程序中进行社区贡献(使用仪表板)。 这个想法是依赖一些约定,并将个人贡献放在这样的目录结构中:
shinyApp/ 与主框架 shinyApp/contributions/user1/ui.R shinyApp/contributions/user1/server.R
我将在哪里创建例如在贡献/下的每个“ui.R”文件中都有一个名为menuList的列表,可以使用:
uiFiles = dir(path = "contributions", pattern = "ui.R", full.names = TRUE, recursive = TRUE)
allMenus = list()
for(fp in uiFiles){
source(fp)
allMenus = list(allMenus, menuList)
}
...
shinyUI(dashboardPage(..., dashboardSidebar(allMenus),
dashboarBody(**???**)))
贡献下的 ui.R 看起来像这样:
menuList = list(
menuItem("Subcluster analysis", tabName = "subcluster", startExpanded = FALSE,
menuSubItem("analysis", tabName = "dge")
),
menuItem("Tools", tabName = "tools", startExpanded = FALSE,
menuSubItem("pheatmap", tabName = "HeatMap")
)
)
这确实有效(如果dashboardBody 中的tabItems 是已知的)。我现在遇到的问题是填充dashboardBody(tabItems(...))
在服务器端(到目前为止我还没有解决)我没有预见到任何问题,因为我可以从 R 源或“.RData”文件加载/获取输出变量和函数。
如果有针对 tabItems 问题的解决方案,或者有迄今为止我还没有看到的更好的解决方案,请告诉我。
【问题讨论】:
标签: r shiny shinydashboard