Есть ли способ использовать массив в качестве идентификатора для блестящего элемента?

#r #shiny

Вопрос:

Мне нужно переменное количество текстовых полей. В настоящее время я создаю входные данные в цикле,

 textInput(paste0("text", i))
 

Тогда я смогу получить к ним доступ с помощью

 input$text1, input$text2, input$text3, ...
 

но я не могу использовать эти явные выражения в цикле. Я попытался использовать ensym и get(eval (…)), но это не сработало.
Есть ли способ определить входы каждого текстового ввода в массиве, т. Е. Что-то вроде TextInput(«текст[i]»))?

Вот упрощенный пример:

приложение.R

 library(shiny)

ui <- fluidPage(
  textInput(paste0("textin1"), label = NULL, value = 1),
  textInput(paste0("textin2"), label = NULL, value = 2),
  textInput(paste0("textin3"), label = NULL, value = 3),
  verbatimTextOutput("textout1"),
  verbatimTextOutput("textout2"),
  verbatimTextOutput("textout3")
)
server <- function(input, output, session) {
  output$textout1 <- renderText({input$textin1})
  output$textout2 <- renderText({input$textin2})
  output$textout3 <- renderText({input$textin3})
}

shinyApp(ui, server)
 

Есть ли способ назначить входы и выходы массивом, т. е. textin[i] вместо textin1, textin2, …

Комментарии:

1. Можете ли вы предоставить ui и server код, необходимый для того, чтобы вопрос был полностью воспроизводим, а также, при необходимости, необходимые данные?

2. Ты можешь это сделать input[[paste0("text", i)]] .

3. Это сработало, ты снова спасла мне день!