Извлечь имя выбора, а не значение

У меня есть именованный choices слот в selectInput и хотел бы получить имя, связанное с выбором, а не значение.

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])
 }
)

Что производит:

Вместо этого я хочу, чтобы текст выводился на Choice 1. Как я могу это сделать?

1 ответ

Поместите свой выбор в объект в global.R, а затем используйте его как в server.R, так и ui.R.

В global.R:

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

В ui.R:

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

В server.R:

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

licensed under cc by-sa 3.0 with attribution.