#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. Это сработало, ты снова спасла мне день!