Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R闪亮:renderUI不工作的条件面板_R_Shiny - Fatal编程技术网

R闪亮:renderUI不工作的条件面板

R闪亮:renderUI不工作的条件面板,r,shiny,R,Shiny,我试图在特定条件下显示一些UI。我希望选择输入的方式根据数据类型的不同而有所不同:当选择的类型是类型X时,我想显示选择输入,当选择类型Y时,我想显示滑块输入。为此,我在conditionalPanel中使用uiOutput 以下是我迄今为止所做的工作: 库(闪亮) 图书馆(shinyWidgets) 图书馆(WDI) 图书馆(DT) 图书馆(dplyr) foo下次请先查看R中的帮助页面(?conditionalPanel)或查找函数。该条件是一个JavaScript表达式,因此您的$符号不起作

我试图在特定条件下显示一些UI。我希望选择输入的方式根据数据类型的不同而有所不同:当选择的类型是
类型X
时,我想显示
选择输入
,当选择
类型Y
时,我想显示
滑块输入
。为此,我在
conditionalPanel
中使用
uiOutput

以下是我迄今为止所做的工作:

库(闪亮)
图书馆(shinyWidgets)
图书馆(WDI)
图书馆(DT)
图书馆(dplyr)

foo下次请先查看R中的帮助页面(
?conditionalPanel
)或查找函数。该条件是一个JavaScript表达式,因此您的$符号不起作用。这应该是一个好主意。(点)

library(shiny)
library(shinyWidgets)
library(WDI)
library(DT)
library(dplyr)

foo <- data.frame(foo_name = c("A", "A", "B", "B", "C", "C"))
data <- cbind(head(mtcars), foo)

ui <- navbarPage(position = "static-top",

                 tabPanel(title = "Base 1",
                          fluidRow(
                            dropdownButton(

                              selectInput(inputId = "choice",
                                          label = "Type of data",
                                          choices = c("Type X",
                                                      "Type Y"),
                                          selected = NULL,
                                          multiple = FALSE),
                              conditionalPanel(
                                condition = "input$choice == 'Type X'",
                                uiOutput("machin")
                                ),
                              conditionalPanel(
                                condition = "input$choice == 'Type Y'",
                                uiOutput("machin2")
                                ),

                              circle = TRUE, status = "primary", 
                              icon = icon("gear"), 
                              width = "300px",
                              tooltip = tooltipOptions(title = "Outils")
                            ),
                            column(width = 12,
                                   dataTableOutput("data"))
                          ))

)


server <- function(input, output) {

  output$machin <- renderUI({
        selectizeInput(inputId = "test",
                       label = "test",
                       choices = unique(data$foo_name),
                       selected = NULL, 
                       multiple = T)
  })

output$machin2 <- renderUI({
      sliderInput("test2", 
                    "Test2", 
                    min = min(data$hp), 
                    max = max(data$hp), 
                    value = c(min(data$hp), 
                              max(data$hp))
                    )
        })


  output$data <- renderDataTable({
    if(input$choice == "Type X"){
    data2 <- data %>%
      filter(foo_name %in% input$test)
    }
    else if(input$choice == "Type Y"){
      data3 <- data %>%
        filter(hp %in% input$test2)
    }
  })

}


shinyApp(ui = ui, server = server)
conditionalPanel(
  condition = "input.choice == 'Type X'",
  uiOutput("machin")
),
conditionalPanel(
  condition = "input.choice == 'Type Y'",
  uiOutput("machin2")
)