我在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仅返回向量中的第一个值。
当有两个复选框都被选为默认选项时,我已经开始工作了,但是当取消选中时,我无法使单个复选框工作。
如何获取它以便在取消选中复选框时会返回所有观察结果?
由于
答案 0 :(得分:0)
使用
解决if(is.null(输入$ patFilt))c(0,1)else 1
不知道为什么ifelse()不起作用。
答案 1 :(得分:0)
我没有要评论的声望点,所以我必须把它作为答案:ifelse 被向量化并返回与表达式相同形状的结果。
另一种说法是:ifelse() != if(){}else{}