我在侧面板中有一系列复选框,在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)
我想以编程方式将这些结果转换为字符向量(例如,如果我有一个名为'display_
的checkboxInput,我希望它能自动解析结果)。为此,我尝试了:
displayIdx <- grep( "display_", names(input) )
facilityCode_keep <- names(input)[ displayIdx ][ input[ displayIdx ] ]
不幸的是,这导致:
Error: Single-bracket indexing of reactivevalues object is not allowed.
两个问题:
checkboxInput
转换为字符向量?input
,但我不是。答案 0 :(得分:10)
如何将一系列checkboxInput转换为字符向量?
您可以使用双括号索引。但在这种情况下,您可以考虑使用checkboxGroupInput
函数,它返回所选值的字符向量。
为什么不进行单括号索引?
单括号索引是子集,而双括号索引是元素检索(或类似的东西)。输入对象更像是map / hash / dict / environment而不是命名向量,因此子集化并不真正有意义。 (同样,你不能在R的环境对象上单括号索引,你只能双括号索引。)