取消选中R Shiny checkboxGroup过滤器

时间:2017-08-21 16:34:49

标签: r checkbox shiny shinydashboard

我在shinydashboard侧面板上有一系列分组复选框,用于子集数据。所有栏一组都选中了一个选中的框。最后一组只有一个选项,默认为未选中。它指向数据集上的二进制变量(0,1)。如果未选中,则不应应用过滤器,如果选中,则将其设置为1值。

到目前为止,我在ui

中有这个
checkboxGroupInput("patFilt", 
                   label = h5("Filter by patient cohort"),
                   choices = c("Patient cohort" = 1),
                   selected = 0,
                   width = "100%")

在我的服务器上。我有

subsetArg <- reactive(list(
    input$group1,
    input$group2,
    input$group3,
    etc.,
    ifelse(is.null(input$patFilt), c(0, 1), 1)
  ))

子集在一个函数中完成,其中subsetArg传递参数。

但是,对于这个单一复选框,默认选项仅返回标记为0的观察值,直到选中该框,然后它正确返回标记为1的观察值。有趣的是,如果我将c(0,1)更改为c(1,0) unchecked选项返回标记为1的观察值。因此subsetArg仅返回向量中的第一个值。

当有两个复选框都被选为默认选项时,我已经开始工作了,但是当取消选中时,我无法使单个复选框工作。

如何获取它以便在取消选中复选框时会返回所有观察结果?

由于

2 个答案:

答案 0 :(得分:0)

使用

解决

if(is.null(输入$ patFilt))c(0,1)else 1

不知道为什么ifelse()不起作用。

答案 1 :(得分:0)

我没有要评论的声望点,所以我必须把它作为答案:ifelse 被向量化并返回与表达式相同形状的结果。

另一种说法是:ifelse() != if(){}else{}