【问题标题】:how do you integrate 2 different shiny apps in one您如何将 2 个不同的闪亮应用程序集成到一个中
【发布时间】:2016-07-17 10:23:22
【问题描述】:

我有两个带有 ui 和服务器组件的闪亮应用程序。我需要创建一个应用程序并能够使用选项卡打开每个应用程序。单击一个选项卡将打开应用程序。

第一个应用是这样的:

ui <- pageWithSidebar(....)
server <- function(input, output,session) {....}

第二个应用是这样的:

 shinyUI(....)
server <- function(input, output, session) {.....}

我如何创建一个应用程序并从一个应用程序内的选项卡中引用这些应用程序?

【问题讨论】:

  • 或许可以尝试使用shinydashboard 包来制作一个包含多个项目的网页?
  • Here你可以找到相关答案。

标签: r shiny


【解决方案1】:

据我所知,这可以通过两种方式实现。

  1. 简单闪亮的应用程序:

您可以使用tabPanel(title, ...) 函数创建选项卡,然后将所有tabPanel()s 包装在tabsetPanel() 函数中。

因此,在您的情况下,您可以将第一个应用程序的所有 UI 元素放在第一个 tabPanel('unique_title') 中,依此类推。

这将帮助您创建多个可独立查看的部分。

您可以参考这两个链接以了解更多信息 http://shiny.rstudio.com/reference/shiny/latest/tabPanel.html

  1. 正如@Michal 建议的那样,使用shinydashboard

shinydashnoard 是另一个软件包,您必须安装它才能使用闪亮的此功能。它基本上有一个带有标题、侧边栏和正文的预定义结构。

基本结构如下图:

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(),
  dashbaordSidebar(),
  dashboardBody()
)

server <- function(input,output,server){...}

通常,dashboardSidebar() 用于导航。但是,它可以包含menuItem(),其行为类似于tabPanel() 中的选项卡。

对于您的情况,您可以在sidebarMenu() 中添加多个menuItem()s,如下所示

更新代码

library(shiny)
library(shinydashboard)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(
    sidebarMenu(
      menuItem("first_app", tabName = "first_app"),
      menuItem("second_app", tabName = "second_app")
    )
  ),
  dashboardBody(
    tabItems(
      tabItem(tabName = "first_app",
              h2("First App Content")
      ),
      tabItem(tabName = "second_app",
              h2("Second App Content"))
    )
  )
)

server <- function(input,output,server){}

shinyApp(ui,server)

这将创建一个包含 2 个菜单项的基本仪表板页面。

您也可以参考下面的链接以了解更多有关闪亮仪表板结构的信息 https://rstudio.github.io/shinydashboard/structure.html

我希望这会有所帮助:)

【讨论】:

  • 我喜欢用tabPanel,不知道有没有使用这个功能的app?
  • 下面链接中的示例演示了 tabset 和 tabpanel 小部件shiny.rstudio.com/gallery/tabsets.html
  • 使用库(shinydasbboard),我如何将我的应用程序包含在您提到的 menuItem 中?
  • 我更新了代码,让您了解如何使用 menuItem() 添加应用程序的内容
猜你喜欢
  • 2020-11-22
  • 2015-10-13
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-27
  • 2021-06-07
相关资源
最近更新 更多