shiny.R中的警告/错误renderUI checkboxGroupInput动态生成

时间:2013-11-21 22:23:38

标签: r dynamic checkbox shiny

我在server.R中运行以下代码。 “COL_OP1”和“COL_OP2”是数据帧“df”中的两列(还有其他列)。我想使用uiOutput('op1')在ui.R中生成动态复选框,它工作正常,但显示警告和错误。

op1几乎没有选择,基于此op2应生成复选框。

警告

"Warning in is.na(e2) :
  is.na() applied to non-(list or vector) of type 'NULL'"

错误是

"Error in mapply(ids, choices, names(choices), SIMPLIFY = FALSE, USE.NAMES = FALSE,  : 
  zero-length inputs cannot be mixed with those of non-zero length"

这是我的代码:

  output$op1 = renderUI({ 
    op1 = unique(df()$COL_OP1)
    op1 = op1[order(op1)]
    checkboxGroupInput('OP1', 'Choose OP1', op1, selected = op1) 
  })

  output$op2 <- renderUI({
    op2 = unique(df()[df()$COL_OP1==input$OP1,]$COL_OP2)
    op2 = op2[order(op2)]
    checkboxGroupInput('OP2', 'Choose OP2',op2, selected = op2)
  })

1 个答案:

答案 0 :(得分:0)

以下代码删除了我的错误并禁止了警告

  output$op1 = renderUI({ 
    op1 = unique(df()$COL_OP1)
    op1 = op1[order(op1)]
    checkboxGroupInput('OP1', 'Choose OP1', op1, selected = op1) 
  })

  output$op2 <- renderUI({
    if(is.null(input$OP1))
       return(NULL)
    op2 = suppressWarnings(unique(df()[df()$COL_OP1==input$OP1,]$COL_OP2))
    op2 = op2[order(op2)]
    checkboxGroupInput('OP2', 'Choose OP2',op2, selected = op2)
  })