2017-06-22 77 views
0
#server 

tables <- reactiveValues(XVALUES=data.frame(), 
        YVALUES=data.frame()) 

output$userinput <- renderDataTable({ 

    if(input$name=="X" & input$city=="BOS" & (is.data.frame(tables$XVALUES) && nrow(tables$XVALUES)!=0)){ 
     cbind(data.frame(Serial=seq(1:5)),tables$XVALUES)} 
    else if(input$name=="X" & input$city=="BOS" & (is.data.frame(tables$XVALUES) && nrow(tables$XVALUES)==0)){} 
    else if (input$name=="Y" & input$city=="NYC" & (is.data.frame(tables$YVALUES) && nrow(tables$YVALUES)!=0)){ 
    cbind(data.frame(Serial=seq(1:5)),tables$YVALUES)} 
    else if (input$name=="Y" & input$city=="NYC" & (is.data.frame(tables$YVALUES) && nrow(tables$YVALUES)==0)){} 

}) 

基於兩個用戶輸入創建和通過添加額外串行列到XVALUES或YVALUES數據幀顯示一個新的數據幀。問題是,即使XVALUES/YVALUES數據框爲空,它仍會顯示串行列。如果XVALUES數據幀爲空,我不想顯示任何內容。我在哪裏錯了?在renderDataTable(光澤),使用ifelse

回答

0

我無法重現該錯誤。我的機器上的表格是空的。這裏是我輸入的內容

server = function(input, output, session){ 
    tables <- reactiveValues(XVALUES=data.frame(), 
          YVALUES=data.frame()) 

    output$userinput <- renderDataTable({ 
    if(input$name=="X" & input$city=="BOS" & (is.data.frame(tables$XVALUES) && 
     nrow(tables$XVALUES)!=0)){ 
     cbind(data.frame(Serial=seq(1:5)),tables$XVALUES)} 
    else if(input$name=="X" & input$city=="BOS" & (is.data.frame(tables$XVALUES) && 
     nrow(tables$XVALUES)==0)){} 
    else if (input$name=="Y" & input$city=="NYC" & (is.data.frame(tables$YVALUES) && 
     nrow(tables$YVALUES)!=0)){ 
     cbind(data.frame(Serial=seq(1:5)),tables$YVALUES)} 
    else if (input$name=="Y" & input$city=="NYC" & (is.data.frame(tables$YVALUES) && 
     nrow(tables$YVALUES)==0)){} 
    }) 
} 

ui = fluidPage(
    selectInput("name","name",c("X","Y")), 
    selectInput("city","city",c("BOS","NYC")), 
    dataTableOutput("userinput") 
) 

shinyApp(ui, server)