2015-04-19 15 views
8

Tôi có một khe có tên là choices trong selectInput và muốn truy xuất tên được liên kết với lựa chọn thay vì giá trị.Lấy tên lựa chọn thay vì giá trị

MWe:

shinyApp(
    ui = fluidPage(
    sidebarPanel(
    selectInput("foo", 
       label = "Select choice here:", 
       choices = c("Choice 1" = "Choice1", 
          "Choice 2" = "Choice2", 
          "Choice 3" = "Choice3"), 
       selected = "Choice1", 
       multiple = TRUE), 
    textOutput("nameOfChoice") 
), 
    mainPanel()), 
    server = function(input, output) { 
    output$nameOfChoice = renderText(input$foo[1]) 
    } 
) 

nào sản xuất:

enter image description here

Thay vào đó, tôi muốn đầu ra văn bản để đọc Choice 1. Tôi có thể làm cái này như thế nào?

Trả lời

6

Đặt các lựa chọn của bạn vào một đối tượng trong global.R và sau đó sử dụng nó trong cả hai server.Rui.R.

Trong global.R:

fooChoices<-c("Choice 1" = "Choice1", 
         "Choice 2" = "Choice2", 
         "Choice 3" = "Choice3") 

Trong ui.R:

selectInput("foo", 
      label = "Select choice here:", 
      choices = fooChoices) 

Trong server.R:

output$nameOfChoice = renderText(names(fooChoices[fooChoices==input$foo])) 
+2

Trong khi một giải pháp hợp lý, đây là rườm rà vì đây đi gánh nặng của việc theo dõi vector lựa chọn và tên đối tượng đầu vào với tôi - tôi thà Shiny làm điều này. – tchakravarty

+2

Tôi không nhận được bình luận của bạn. Bạn chỉ cần đưa ra một biểu tượng cho vector lựa chọn. Đó là nó. Chính xác những gì bạn nghĩ là cồng kềnh? – nicola

+0

Cảm ơn câu trả lời của bạn - vì không có câu trả lời nào tốt hơn, tôi sẽ đánh dấu câu trả lời này là đã được chấp nhận. – tchakravarty

Các vấn đề liên quan