3

我是闪亮仪表板的新手,我正在尝试制作一个简单的仪表板。我正在尝试组合一个仪表板,该仪表板基本上将通过不同的聚类算法并展示它们是如何工作的。

我有一个用于整个分支主题的菜单项,然后在这些菜单中输入用于指定聚类算法参数的项。

我的问题是我无法在屏幕上获得任何输出。我什至看不到我放置在 tabItems 内的框的标题。当我将一个子项放在我的一个菜单项中时,这似乎会发生。我不确定为什么。

附上我的 ui.R 脚本和 server.R 脚本。

ui.R 文件: ui.R 文件

server.R 文件:

服务器.R 文件

对此问题的任何帮助将不胜感激。

4

1 回答 1

6

所以,据我所知,问题是由于您将单选按钮放置在menuItem. 如果您只想radioButtons在选项卡kclustering处于活动状态时显示 ,则需要radioButtonsconditionalPanel. 它看起来像这样:

library(shinydashboard)

ui <- dashboardPage(
   dashboardHeader(title = "Bla"),
   dashboardSidebar(
     sidebarMenu(
       id = "tabs",
       menuItem(
         "K-clustering",
         tabName = "kclustering",
         icon = icon("cogs")),
       conditionalPanel(
         "input.tabs == 'kclustering'",
         radioButtons("technique", "Technique Choice", 
                 c("K-Means" = "kmeans",
                   "K-Medians" = "kmedians",
                   "K-Medoids" = "kmedoids"),
                 select = "kmedians")
         ),
       menuItem("DBSCAN", tabName = "dbscan")
     )
 ),
 dashboardBody(
   tabItems(
     tabItem("kclustering",
       fluidRow(
         box(plotOutput("step1"))
       ))
      )
))

server <- function(input, output) {

  output$step1 <- renderPlot({

    hist(rnorm(5000))

  })

}

runApp(shinyApp(ui, server))

在这种情况下,设置sidebarMenu对象的 id 参数以便能够制定您的条件非常重要。底线是:不要把你的radioButtons,sliderInputtextInput放在menuItem对象里面,而是放在sidebarMenu对象本身里面。

于 2017-03-26T19:54:35.220 回答