【问题标题】:R Shiny selectinput box auto filterR闪亮的选择输入框自动过滤器
【发布时间】:2015-01-19 04:12:11
【问题描述】:

闪亮可以在 UI 页面中自动过滤数据吗?比如选择站点,标题数据按站点自动过滤?

sidebarLayout(
sidebarPanel(
  selectInput("Site", "Choose a Site:", 
              choices = site),
  selectInput("Title", "Choose a Title:", 
              choices = title,multiple=TRUE),
  selectInput("Job Category", "Choose a Job category:", 
              choices = job_category,multiple=TRUE),

>

#-----Raw data--------
    Site    Title   Job_Category
1   Wuxi    Sr Manager  Management
2   Wuxi    Manager Management
3   Wuxi    Sr Manager  Management
4   Suzhou  Manager Management
5   Wuxi    Analyst II  Professional
6   Wuxi    Director    Management
7   Wuxi    Manager Management
8   Wuxi    Staff Analyst   Professional
9   Wuxi    Sr Team Lead    Management
10  Wuxi    Manager Management
11  Wuxi    Sr Administrator    Professional
12  Suzhou  Manager Management
13  Suzhou  Sr Analyst  Professional
14  Suzhou  Sr Analyst  Professional
15  Suzhou  Staff Analyst   Professional
16  Suzhou  Sr Analyst  Professional
17  Wuxi    Staff Analyst   Professional
18  Suzhou  Analyst II  Professional
19  Suzhou  Analyst II  Professional
20  Wuxi    Sr Administrator    Professional

【问题讨论】:

    标签: r user-interface shiny


    【解决方案1】:

    您可以使用renderUIserver.R 中创建selectinput 变量。有示例observe updateSelectInput based on first selection,或者您可以在observer 语句中使用updateSelectInput 来更新selectInput,但是我不确定如何基于此选择所有变量。下面是基于第一种方法的工作示例。请注意,我根据您提供的输入创建了示例数据。

    library(shiny)
    
    Site <- NULL
    Title <- NULL
    Job_Category <- NULL
    for (i in 1:50)
    {
      Site[i] <- sample(c("Wuxi","Suzhou","Other site"))[1]
      Title[i] <- sample(c("Sr Manager","Manager","Director", "Analyst II","Sr Administrator"))[1]
      Job_Category[i] <- sample(c("Management","Professional"))[1]
    }
    
    ui =fluidPage(
      tabPanel("Testing",
               sidebarPanel(
                 selectInput("Site", "Choose a Site:", choices = c(Site)),
                 uiOutput("varselect2"),uiOutput("varselect3"))))
    
    server = function(input, output, session){
    
      output$varselect2 <- renderUI({
        cols <- Title[Site %in% input$Site]
        selectInput("vars", "Select Title:",choices=cols, selected=cols, multiple=T)  
      })  
    
      output$varselect3 <- renderUI({
        cols2 <- Job_Category[Site %in% as.character(input$Site) & Title %in% input$vars]
        selectInput("vars2", "Select Job category:",choices=cols2, selected=cols2, multiple=T)  
      })
    
    }
    runApp(list(ui = ui, server = server))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-16
      • 2016-11-21
      • 2020-03-19
      • 2020-08-18
      • 1970-01-01
      • 2016-03-16
      • 2020-08-01
      相关资源
      最近更新 更多