未选中时 R Shiny checkboxGroup 过滤器
R Shiny checkboxGroup filter when unchecked
我在用于子集数据的 shinydashboard 侧面板上有一系列分组的复选框。一组的所有栏都有一个选中的框。最后一组只有一个选项,默认未选中。它指向数据集上的二进制变量 (0, 1)。如果未选中,则不应应用任何过滤器,如果选中,则它在 1 值上进行子集化。
到目前为止我在 ui
中有这个
checkboxGroupInput("patFilt",
label = h5("Filter by patient cohort"),
choices = c("Patient cohort" = 1),
selected = 0,
width = "100%")
在我的 server.R 我有
subsetArg <- reactive(list(
input$group1,
input$group2,
input$group3,
etc.,
ifelse(is.null(input$patFilt), c(0, 1), 1)
))
子集化是在函数中完成的,subsetArg 传递参数。
但是,对于这个单个复选框,默认选项只有 returns 标记为 0 的观察值,直到选中该框然后它正确地 returns 标记为 1 的观察值。有趣的是,如果我更改 c(0, 1) 到 c(1,0) 未选中的选项 returns 观察标记为 1。因此 subsetArg 仅返回向量中的第一个值。
当有两个复选框都被选中为默认值时,我可以使用它,但是当未选中时我无法使单个复选框起作用。
我如何获得它以便在取消选中该复选框时返回所有观察结果?
谢谢
使用
解决
if(is.null(input$patFilt)) c(0,1) 否则 1
不知道为什么 ifelse() 不起作用。
我没有要评论的声誉点数,所以我不得不留下这个作为答案:ifelse 被矢量化并且 returns 结果与表达式的形状相同。
另一种说法是:ifelse() != if(){}else{}
我在用于子集数据的 shinydashboard 侧面板上有一系列分组的复选框。一组的所有栏都有一个选中的框。最后一组只有一个选项,默认未选中。它指向数据集上的二进制变量 (0, 1)。如果未选中,则不应应用任何过滤器,如果选中,则它在 1 值上进行子集化。
到目前为止我在 ui
中有这个checkboxGroupInput("patFilt",
label = h5("Filter by patient cohort"),
choices = c("Patient cohort" = 1),
selected = 0,
width = "100%")
在我的 server.R 我有
subsetArg <- reactive(list(
input$group1,
input$group2,
input$group3,
etc.,
ifelse(is.null(input$patFilt), c(0, 1), 1)
))
子集化是在函数中完成的,subsetArg 传递参数。
但是,对于这个单个复选框,默认选项只有 returns 标记为 0 的观察值,直到选中该框然后它正确地 returns 标记为 1 的观察值。有趣的是,如果我更改 c(0, 1) 到 c(1,0) 未选中的选项 returns 观察标记为 1。因此 subsetArg 仅返回向量中的第一个值。
当有两个复选框都被选中为默认值时,我可以使用它,但是当未选中时我无法使单个复选框起作用。
我如何获得它以便在取消选中该复选框时返回所有观察结果?
谢谢
使用
解决if(is.null(input$patFilt)) c(0,1) 否则 1
不知道为什么 ifelse() 不起作用。
我没有要评论的声誉点数,所以我不得不留下这个作为答案:ifelse 被矢量化并且 returns 结果与表达式的形状相同。
另一种说法是:ifelse() != if(){}else{}