2016-11-15 6 views
2

Ich versuche, den label eines conditionalPanel den Namen enthalten abgeleitet von einem Ausgang, der mit einem anderen Eingang erstellt wird. Ich habe recherchiert und konnte noch nicht herausfinden, wie das geht. Unten ist, was ich versucht habe, ohne Erfolg.R Shiny Conditional Input Label basierend auf einem anderen Input

ui.R

shinyUI(
    fluidPage( 
    titlePanel("example"), 
    sidebarLayout(  
     sidebarPanel(

     numericInput("criteria_count", 
        label = "How many criteria are being considered? (max = 5)", 
        2, min = 2, max = 5), 

     textInput("critera_text", 
        label = "Type the different criteria titles, seperated by commas.", 
        value = "Example A, Example B"), 
     #verbatimTextOutput("value"), 

     conditionalPanel(condition = "input.criteria_count == 2", 
         selectInput("main_cri1", 
            label = paste0("How much more important is ", output.criteria1, " than ", output.criteria2, "?"), 
            c("9 (Extremely more important)", 
             "7 (Much more important)", 
             "5 (Moderately more important)", 
             "3 (Slightly more important)", 
             "1 (Equally as important)", 
             "1/3 (Slightly less important)", 
             "1/5 (Moderately less important)", 
             "1/7 (Much less important)", 
             "1/9 (Extremely less important)"))) 

    ) 
    ) 
) 
) 

server.R

library(shiny) 

shinyServer(function(input, output){ 

    output$criteria1 <- renderText({ 
    strsplit(input$critera_text, ", ")[[1]][1] 
    }) 

    output$criteria2 <- renderText({ 
    strsplit(input$critera_text, ", ")[[1]][2] 
    }) 

}) 

die ui.R oben gegeben, die label für die conditionalPanel sollte wie folgt lauten:

" Wie viel wichtiger ist Beispiel A als Beispiel B? "

Antwort

1

Versuchen Sie, diese (app.R)

ui <- 
    fluidPage(titlePanel("example"), 
      sidebarLayout(

       sidebarPanel(
       numericInput(
        "criteria_count", 
        label = "How many criteria are being considered? (max = 5)", 
        2, 
        min = 2, 
        max = 5 
       ), 

       textInput("critera_text", 
          label = "Type the different criteria titles, seperated by commas.", 
          value = "Example A, Example B"), 

       conditionalPanel(condition = "input.criteria_count == 2", 
           uiOutput("mySelectInput")) 
      ), 

       mainPanel() 

      )) 

server <- 
    function(input, output) { 
    output$mySelectInput <- renderUI({ 
     criteria1 <- strsplit(input$critera_text, ", ")[[1]][1] 
     criteria2 <- strsplit(input$critera_text, ", ")[[1]][2] 

     selectInput(
     "main_cri1", 
     label = paste0(
      "How much more important is ", 
      criteria1, 
      " than ", 
      criteria2, 
      "?" 
     ), 
     choices = c(
      "9 (Extremely more important)", 
      "7 (Much more important)", 
      "5 (Moderately more important)", 
      "3 (Slightly more important)", 
      "1 (Equally as important)", 
      "1/3 (Slightly less important)", 
      "1/5 (Moderately less important)", 
      "1/7 (Much less important)", 
      "1/9 (Extremely less important)" 
     ) 
    ) 
    }) 
    } 

shinyApp(ui = ui, server = server) 
+0

große Werke. Vielen Dank! – bshelt141