2017-11-03 3 views
1

Ich habe Probleme bei der Anzeige der Ausgabe in Bezug auf meine SelectInput Selektoren. Ich machte zwei abhängige selectInput Selektoren: Position und Jahr. Was ich will, ist, die entsprechende Auswahl meines Datenrahmens mit Hilfe von dataTableOutput anzuzeigen.Zeige DataTable Ausgabe von mehreren abhängigen selectInputs

Zum Beispiel, die Wahl von Standort "2" und Jahr "2016" zeigt die Aufzeichnungen von Katy und William.

Das ist mein vereinfachte ui Abschnitt:

library(DT) 
library(shiny) 
library(shinydashboard) 

Location = c("1","1","1","2","2","2","3","3","3") 
Year = c(2015,2014,2016,2015,2016,2016,2017,2016,2014) 
Person = c("John", "Ann", "Katy", "Ann", "Katy", "William", "Henry", "Luke", "Luke") 
mockup = data.frame(Location, Year, Person) 

ui <- dashboardPage(
        dashboardHeader(), 
        dashboardSidebar(
         sidebarMenu(
         menuItem("Selection", tabName = "selection")     
           ) 
        ), 
        dashboardBody(
         tabItems(
         tabItem(tabName = "selection", 
           fluidRow(
            box(width = 5, 
             title = "TITLE", "Choose something", 
             collapsible = FALSE, 
             htmlOutput("Location_selector"), 
             htmlOutput("Year_selector") 
           ), 
            mainPanel(
            DT::dataTableOutput("selection") 
           ) 
           ))    

             ) 
        ) 
        ) 

und das ist mein Server Abschnitt:

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

    output$Location_selector = renderUI({ 
    selectInput(inputId = "Location", 
       label = "Location:", 
       choices = as.character(unique(mockup$Location))) 
    }) 
    output$Year_selector = renderUI({ 

    data_available = mockup[mockup$Location == input$Location, "Year"] 

    selectInput(inputId = "Year", 
       label = "Year:", 
       choices = unique(data_available), 
       selected = unique(data_available)[1]) 
    }) 

    output$selection <- DT::renderDataTable({ 

}) 
} 

shinyApp(ui, server) 

Ich weiß, dass ich Sachen bin fehlt den nächsten Teil in Bezug auf, aber ich bin kann dies bisher nicht lösen:

output$selection <- DT::renderDataTable({ 

    }) 

Ich hoffe, ihr könnt mir helfen. Danke im Voraus!

+0

Was mit 'mit' (Mock-up, Mock-up [Jahr == Eingang $ Year & Location == Eingang $ Lage,]) falsch ist? – lukeA

+0

Sie könnten versuchen, Teilmenge (Mockup, Location == Eingabe $ Location & Year == Eingabe $ Jahr) ' – SBista

+0

Es ist nichts falsch daran. Funktioniert gut. Danke vielmals! EDIT: Teilmenge tut auch den Trick. – JohnDoedel

Antwort

0

Beide Vorschläge gearbeitet:

subset(mockup, Location == input$Location & Year == input$Year) 

und

with(mockup, mockup[Year==input$Year & Location==input$Location,]) 
Verwandte Themen