在Shiny中获取多个复选框值

Ari*_*man 7 r shiny

我在侧面板中有一系列复选框,在以下内容中定义如下sidebarPanel:

sliderInput("days", 
                "Days to monitor:", 
                min = 1, 
                max = 50, 
                value = 5),
    checkboxInput("display_CMC", "Carolinas Medical Center", TRUE),
    checkboxInput("display_MariaParham", "Maria Parham", TRUE),
    checkboxInput("display_WakeMed", "Wake Med", TRUE)
Run Code Online (Sandbox Code Playgroud)

我想以编程方式将这些结果转换为字符向量(例如,如果我有一个带有名称的checkboxInput,display_我希望它能自动解析结果).为此,我试过:

displayIdx <- grep( "display_", names(input) )
facilityCode_keep <- names(input)[ displayIdx ][ input[ displayIdx ] ]
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会导致:

Error: Single-bracket indexing of reactivevalues object is not allowed.
Run Code Online (Sandbox Code Playgroud)

两个问题:

  1. 如何将一系列checkboxInputs转换为字符向量?
  2. 怎么了不允许单支架索引.我能理解我是否想要分配input,但我不是.

Joe*_*eng 10

如何将一系列checkboxInput转换为字符向量?

您可以使用双括号索引.但在这种情况下,您可以考虑使用checkboxGroupInput函数,它返回所选值的字符向量.

为什么不单支架索引?

单括号索引是子集,而双括号索引是元素检索(或类似的东西).输入对象更像是map/hash/dict/environment而不是命名向量,因此子集化并不真正有意义.(同样,你不能在R的环境对象上单括号索引,你只能双括号索引.)