我是闪亮仪表板的新手,我正在努力制作一个简单的仪表板。我试图整合一个仪表板,它将基本上通过不同的聚类算法并显示它们是如何工作的。
我有一个整体分支主题的菜单项,然后在这些菜单中输入指定聚类算法参数的项目。
我的问题是我的屏幕上无法获得任何输出。我无法渲染图甚至看到我放在tabItems中的方框的标题。当我在我的一个菜单项中放置一个子项时,似乎会发生这种情况。我不知道为什么。
附件是我的ui.R脚本和server.R脚本。
server.R文件:
非常感谢任何有关此事的帮助。
答案 0 :(得分:2)
因此,据我所知,问题是由于您将radioButtons放在menuItem
内。如果您只想在标签radioButtons
处于活动状态时显示kclustering
,则需要将radioButtons
包裹在conditionalPanel
中。它看起来像那样:
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
,sliderInput
和textInput
放在menuItem
对象中,而是放在sidebarMenu
对象本身中。