2017-03-24 7 views
0

Ich bin neu in glänzenden Dashboards und ich versuche mich an der Erstellung eines einfachen Dashboards. Ich versuche ein Dashboard zu erstellen, das im Grunde verschiedene Clustering-Algorithmen durchläuft und zeigt, wie sie funktionieren.Shiny Dashboard Eingänge in MenuItems Probleme

Ich habe ein Menüelement für das Thema der allgemeinen Verzweigung und geben dann Elemente in diesen Menüs ein, die die Parameter für die Clusteralgorithmen angeben.

Mein Problem ist, ich kann keine Ausgabe auf meinem Bildschirm bekommen. Ich kann keine Plots darstellen, auch wenn ich den Titel für die Boxen sehe, die ich in den TabItems platziert habe. Dies scheint zu passieren, wenn ich einen Unterpunkt in einen meiner Menüpunkte platziere. Ich bin mir nicht sicher warum.

Beigefügt ist meine ui.R Skript und Server.R Skript.

ui.R Datei: ui.R file

server.R Datei:

server.R file

Jede Hilfe in dieser Angelegenheit wäre sehr willkommen.

Antwort

1

Also, soweit ich sehen kann, liegt das Problem daran, dass Sie die RadioButtons innerhalb der menuItem platziert haben. Wenn Sie nur die radioButtons anzeigen möchten, wenn die Registerkarte kclustering aktiv ist, müssen Sie radioButtons in eine conditionalPanel umbrechen. Es wäre so ähnlich aussehen:

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)) 

In diesem Fall ist es wichtig, das ID-Argument des sidebarMenu Objekts zu setzen, können Sie Ihre Bedingung formulieren. Unterm Strich ist: nicht Ihre radioButtons, sliderInput und textInput innerhalb der menuItem Objekte, sondern in der sidebarMenu Objekt selbst.

Verwandte Themen