R从多个selectInput中选择手机面板

R从多个selectInput中选择手机面板,r,shiny,R,Shiny,在我闪亮的应用程序中,我有一个selectInput,multiple=True。这允许从列表中选择多个变量。 我想为列表中的每个变量添加conditionalPanel,只有在选择变量时才会显示 例如: shinyUI(fluidPage( sidebarPanel( selectInput("variables", "Choose variables" , choices = c("VAR1", "VAR2", "VAR3", "VAR4"), multip

在我闪亮的应用程序中,我有一个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'为false,因为input.variables包含多个值。什么条件可以在这里工作?在R中,条件将是%input.variables中的:“VAR1”%


谢谢

您可以使用
|
创建多个条件,因此代码如下所示:

conditionalPanel(
         condition = c("input$variables == 'VAR1' || input$variables == 'VAR2'"),
#here your follwing selectinput
这意味着,如果您的输入是VAR1或其VAR2或两者,条件面板将接受并转到selectinput。还可以使用&&生成VAR1和VAR2等


另外,如果要为每个变量创建一个条件面板,请不要使用multiple=TRUE,并更改为单选selectinput。

将所选变量连接到字符串中,然后执行模式匹配检查。这应该行得通

selected <- paste(input$variables, collapse=",")
if ("VAR1" %in% selected)

selected您要查找的Javascript条件是

input.variables.indexOf('VAR1') > -1

我也搜索了这个问题,发现Javascript必须遵循这个条件。 对于正在搜索此内容的任何人,Laurent在上面给出了正确的答案

我们还可以向您提供以下条件:

conditionalPanel(condition = "input.variables.includes('VAR1')")

你应该提供一个可复制的例子。服务器丢失。谢谢您的回复。我希望每个变量都有一个不同的ConditionalPanel,但我不想做一个选择,因为这样做的目的是打印带有选定变量和选定条件的数据帧。假设我有一个包含200个变量的数据帧,我只想在输出中显示其中的5个变量,其中的一些条件是VAR1==“a”和VAR4 in('AAA','BBB')。所以我只想在上面选择变量的情况下显示条件,但我不能对每个变量都有一个单一的选择。这个答案有点太简洁了!