如何在R闪亮中将所选对象详细信息从一个选择发送到另一个选择

时间:2014-07-28 10:15:08

标签: r shiny

我需要帮助根据用户的选择构建动态用户界面。 我有R服务器脚本读取的制表符分隔文件,此文件包含5列数据(Job_Types,Job_Order,Task_Number,Activity_Number,Activity_Type) 以下是数据表的外观 已完成JO_1 JO_1_TN_1 JO_1_TN_1_AN_1绘图 已完成JO_1 JO_1_TN_2 JO_1_TN_2_AN_1绘图 完成JO_1 JO_1_TN_3 JO_1_TN_3_AN_2切割 已完成JO_1 JO_1_TN_4 JO_1_TN_4_AN_1绘图 当前JO_2 JO_2_TN_1 JO_2_TN_1_AN_1绘图 当前JO_2 JO_2_TN_2 JO_2_TN_2_AN_2切割 当前JO_3 JO_3_TN_1 JO_3_TN_1_AN_3绘画

以下是我目前面临的挑战: 为用户提供了一个界面(下拉菜单)来选择Job_Types,基于用户选择的Job_Types,Job_Order下拉菜单被填充,现在我想填充下一个下拉菜单,选择Task_Number基于用户做出的Job_Order选择,在类似的行上,我希望根据用户做出的Task_Number选择为用户提供Activity_Number选择。 例如:假设用户选择"当前" (Job_Types)来自第一个下拉菜单。 第二个下拉菜单应该只选择JO_2和JO_3作为选项;现在让我们说用户选择" JO_2和JO_3" 第三个下拉菜单应该只有JO_2_TN_1,JO_2_TN_2,JO_3_TN_1任务编号列出供选择,比如用户选择" JO_2_TN_1,JO_3_TN_1" 第四个下拉菜单应该只有JO_3_TN_1_AN_3作为选项

这是我的代码 shinyServer(函数(输入,输出){

data1 <- data.frame(read.table("Data.txt", sep="\t", header=TRUE))
                            # reactiveValues(current_col = 0)   
output$mytext <- renderText({
    result <- input$var

})
    输出$ choose_Job_Types&lt; - renderUI({                                     if(&#34; SelectJobType&#34;%in%input $ var)                                     {                                         com&lt; - paste(&#34;&#34;)                                         selectInput(&#34; JobOrder&#34;,&#34;选择作业顺序&#34;,com)                                     }                                     否则if(&#34;当前&#34;%in%input $ var)                                     {                                         sub_data&lt; - subset(data1,data1 [,1]%in%&#34; Current&#34 ;, select = c(&#34; Job_Order&#34;))                                         selectInput(&#34; JobOrder&#34;,&#34;选择作业顺序&#34;,sub_data [,1],multiple = TRUE)

                                }
                                else
                                {
                                    sub_data <- subset(data1, data1[,1] %in% "Completed", select=c("Job_Order"))
                                    selectInput("JobOrder", "Select Job Order", sub_data[,1], multiple=TRUE)
                                }

                            })


output$choose_Job_Order <- renderUI({
                                    sub_data2 <- subset(data1, data1[,2] %in% output$JobOrder, select=c("Task_Number"))
                                    selectInput("TaskNumber", "Select Task Number", sub_data2[,2], multiple=TRUE)                                   
                                })  
}     

shinyUI(pageWithSidebar(   headerPanel(强(&#34;工作流可视化模型&#34;,样式=&#34;颜色:黑&#34;),windowTitle =&#34; WorkFlow&#34;),

sidebarPanel(

标记$头(
        标签$ style(type =&#39; text / css&#39;,&#34; input {width:100px;}&#34;),#control numericInput box,
        标签$ style(type =&#39; text / css&#39;,&#34; select,textarea,.jslider,.well {background-color:#F0F0F0;}&#34;)         ),

selectInput("var", 
  label = (strong("Choose Job Types", style="color:black")),
  choices = c("SelectJobType","Current","Completed"),
  selected = "SelectJobType"),
     uiOutput("choose_Job_Types"),
     uiOutput("choose_Job_Order"),
       br()
),

mainPanel(  
        tabsetPanel(
        tabPanel("Introduction", (h1("Current Status Overview Of Jobs in Pipeline")),
        textOutput("mytext"),


                plotOutput("graph_report")

        ),
        tabPanel("TablularView", (h1("Tabular View of Selected Job Orders")), tableOutput("DataTable"))
    )
)

))

0 个答案:

没有答案