在我的闪亮应用程序中,我有一个selectInput,其中multiple = True。这允许从列表中选择几个变量。 我想为列表的每个变量添加conditionalPanel,只有在选择变量时才会显示。
例如:
shinyUI(fluidPage(
sidebarPanel(
selectInput("variables", "Choose variables" , choices = c("VAR1", "VAR2", "VAR3", "VAR4"), multiple=TRUE),
conditionalPanel(
condition = " input.variables == 'VAR1' ",
selectInput("VAR1", "values", c("A", "B", "C"))
)
),
mainPanel(
)
)
问题是因为我选择了几个变量我的条件输入$ variables =='VAR1'是假的,因为input.variables包含几个值。什么条件可以在这里工作?在R中,条件为:%input.variables
中的“VAR1”%谢谢
答案 0 :(得分:0)
您可以使用||
创建多个条件,因此代码如下所示:
conditionalPanel(
condition = c("input$variables == 'VAR1' || input$variables == 'VAR2'"),
#here your follwing selectinput
这意味着如果您的输入是VAR1或其VAR2或两者,则条件面板接受并进入selectinput。你也可以使用&&制作VAR1和VAR2等。
此外,如果您想为每个变量创建一个条件面板,请不要使用multiple = TRUE,并更改为单个选择selectinput。
答案 1 :(得分:0)
将选定的变量加入到字符串中,然后进行模式匹配检查。这应该工作
selected <- paste(input$variables, collapse=",")
if ("VAR1" %in% selected)
答案 2 :(得分:0)
您要查找的Javascript条件是
input.variables.indexOf('VAR1') > -1
答案 3 :(得分:0)
我也搜索了此问题,并发现Javascript必须遵循该条件。 对于也在寻找这个的任何人,洛朗在上面给出了正确的答案。
我们还可以为您提供以下条件:
conditionalPanel(condition = "input.variables.includes('VAR1')")