R Shiny - 选择性输入多个相互依赖的选择性输入选择

时间:2018-06-11 09:44:54

标签: r filter shiny

我们有一个闪亮的应用程序,在ui上有四个selectizeInput。我们的目标是selectizeInput的选择相互依赖,即在特定selectizeInput中做出一个或多个选择。

也许有人有同样的问题。

非常感谢。

以下是一个例子:

# UI====================
overviewUI <- function(id){
ns <- NS(id)
tagList(
tags$head(tags$style(HTML(".shiny-notification {position:fixed; top: calc(50%);; left: calc(50%);;}"))),
fluidRow(
  box(title="Controls", status = "warning", width=12, collapsible=TRUE, collapsed=TRUE,    
column(width=3,
  uiOutput(ns("String_1")),
  uiOutput(ns("String_2")),
  uiOutput(ns("String_3"))),
column(width=3,
  selectizeInput(ns("String_4"),"Select String_4", choices=unique(data_scu$String_4), multiple=TRUE, options=NULL)

# Function====================
scu_overview <- function(input, output, session, data){

filtered_data <- reactive({
 sel_String_1 <- if (is.null(input$String_1)) unique(data$String_1) else input$String_1
 sel_String_2 <- if (is.null(input$String_2)) unique(data$String_2) else input$String_2
 sel_String_3 <- if (is.null(input$String_3)) unique(data$String_3) else input$String_3
 sel_String_4 <- if (is.null(input$String_4)) unique(data$String_4) else input$String_4

temp <- data[String_1 %in% sel_String_1 & String_2 %in% sel_String_2 & String_3 %in% sel_String_3 & String_4%in% sel_String_4 ]

   temp[,':='(quarter=paste0("Q", quarter(data$month)," ", format(year(data$month),format ="%y")),year=year(data$month))]})

# Build GUI=========

output$ctr_String_1 <- renderUI({
ns <- session$ns
selectizeInput(ns("String_1"),"Select String_1", choices=unique(filtered_data()$String_1), multiple=TRUE, options=NULL)
})

output$ctr_String_2 <- renderUI({
ns <- session$ns
selectizeInput(ns("String_2"), "Select String_2", choices=unique(filtered_data()$String_2), multiple=TRUE, options=NULL)
})

output$ctr_String_3 <- renderUI({
ns <- session$ns
selectizeInput(ns("String_3"),"Select String_3", choices=unique(filtered_data()$String_3), multiple=TRUE, options=NULL)
})

0 个答案:

没有答案