2014-11-21 91 views
0

闪亮可以在UI页面中自动创建文件数据吗?像选择网站,标题数据自动过滤网站?R闪亮的selectinput框自动过滤器

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 

回答

0

可以使用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))